Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2010-11-10
帖子: 13
声望力: 15 ![]() |
![]()
我自己试着编了一段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 ![]() if B(i)==1 temp1=temp1+1; elseif B(i)==2 temp2=temp2+1; end end break; end chrom=B; |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2008-09-14
年龄: 43
帖子: 351
声望力: 24 ![]() |
![]()
break 放到判断里面
__________________
qq604443022 |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2010-11-10
帖子: 13
声望力: 15 ![]() |
![]()
把break放到判断里面了之后while是开始循环了,但是for循环只执行一次了。我是想让for循环记录随机产生的B中1和2出现的次数,如果1和2出现的次数相等,那么chrom=B.如果出现的次数不等,那么在随机产生B,进行判断。知道满足1,2出现的次数为止。你能给我指点一下么?谢谢!
|
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-09-14
年龄: 43
帖子: 351
声望力: 24 ![]() |
![]()
用if进行判断 然后用break
__________________
qq604443022 |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2010-11-10
帖子: 13
声望力: 15 ![]() |
![]()
不好意思,能再说详细点么?!我刚学用matlab编程。还不熟练!谢谢!
|
![]() |
![]() |