PDA

查看完整版本 : [问题] matlab编程求助!


shuaishuailei
2010-12-23, 14:50
我自己试着编了一段matlab,但是在运行时我检测while语句只执行了一次就跳出了。我不知道是什么原因,我希望能循环检测 请高手为我指点一下吧!谢谢!
n=size(P);
temp1=0;
temp2=0;
while [temp1~=n(2),temp2~=n(2)] %循环检测,只有当1,2出现的次数都等于n(2)时才能得到chrom=B这个结果。
B=randi(n(1),1,(n(1)*n(2))); %随机生成一个1到n(1)的1*[n(1)*n(2)]阶的矩阵
for i=1:(n(1)*n(2)) %记录B中1—2出现的次数
if B(i)==1
temp1=temp1+1;
elseif B(i)==2
temp2=temp2+1;
end
end
break;
end
chrom=B;

anbcjys
2010-12-25, 08:33
break 放到判断里面

shuaishuailei
2010-12-25, 11:03
把break放到判断里面了之后while是开始循环了,但是for循环只执行一次了。我是想让for循环记录随机产生的B中1和2出现的次数,如果1和2出现的次数相等,那么chrom=B.如果出现的次数不等,那么在随机产生B,进行判断。知道满足1,2出现的次数为止。你能给我指点一下么?谢谢!

anbcjys
2010-12-26, 09:00
用if进行判断 然后用break

shuaishuailei
2010-12-26, 17:11
不好意思,能再说详细点么?!我刚学用matlab编程。还不熟练!谢谢!