for i=1:9
for j=1:9
if x(i,j)~=0
return;
else
a=S(i,j).zhi;
for t=1:length(a) %位置(1),X取另外不同的数。如果X(i,j)的位置取完了,还是不满足isempty(find(X==0)) ,返回上一个X(i,j)%
X(i,j)=a(t);
S=possiblevalue(X); %这里是对每个X可以取到的值改变
if isempty(find(X==0)) %如果X里面没有0,则保存X并退出,如果有,返回到(1)的位置
save X;
else
return;
end
end
end
end
end
这里想做个递归,X矩阵中有0也有一直数,已知数不可改变,通过possiblevalue这个规则使得X中0取满。比如X(4,5)取了一个值后,X(4,6)无法再取值,则让X(4,5)再可取值内改变,若还是不可让后续的X取到值,则再次向前改变比如X(4,3)的值
另外,这个是在matlab环境下运行的作者: 高丽坤 时间: 2012-7-25 16:46
你的意思是指在循环中再嵌套一个循环吧,下面是我写的,添了一些东西(b),不知道有没有用
for i=1:9
for j=1:9
if x(i,j)~=0
return;
else
a=S(i,j).zhi;
int b=1;
while(b=1)
{
for t=1:length(a) %位置(1),X取另外不同的数。如果X(i,j)的位置取完了,还是不满足isempty(find(X==0)) ,返回上一个X(i,j)%
X(i,j)=a(t);
S=possiblevalue(X); %这里是对每个X可以取到的值改变
if isempty(find(X==0)) %如果X里面没有0,则保存X并退出,如果有,返回到(1)的位置
save X;
b=0;%跳出循环
else
b=1;%接着循环
}
end
end作者: 高丽坤 时间: 2012-7-25 16:49
goto 语句为无条件转向语句,要用到标号,
goto 标号;
......
标号:语句;
这个应该可以用,可以尝试,不过貌似不提倡作者: chqk921 时间: 2012-7-25 19:45
高丽坤 发表于 2012-7-25 16:46
你的意思是指在循环中再嵌套一个循环吧,下面是我写的,添了一些东西(b),不知道有没有用
for i=1:9
...