MATLAB中假如while语句中有多个条件时应该怎么写?
就是这种情况,while(a(i,1)==a(i:2)||a(i,1)==A||a(i,2)==A||a(i,1)=B||a(i,2)==B)这些条件只要有一个成立就继续...
就是这种情况,while (a(i,1)==a(i:2)||a(i,1)==A||a(i,2)==A||a(i,1)=B||a(i,2)==B)这些条件只要有一个成立就继续while循环,但好像这样写不行,所以请教一下应该怎么写,请把程序写出来。下面是我想要的整个while 循环:a(i,:)=1+fix(10*rand(1,2));
while (a(i,1)==a(i:2)||a(i,1)==A||a(i,2)==A||a(i,1)=B||a(i,2)==B)
a(i,:)=1+fix(10*rand(1,2));
end 展开
while (a(i,1)==a(i:2)||a(i,1)==A||a(i,2)==A||a(i,1)=B||a(i,2)==B)
a(i,:)=1+fix(10*rand(1,2));
end 展开
3个回答
展开全部
可以用逻辑表达式,但是楼主的写法错误。Matlab里的或关系是一条竖线,不是两条。呵呵。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%试试逻辑数组:^_^
s=[a(i,1)==a(i:2),a(i,1)==A,a(i,2)==A,a(i,1)=B,a(i,2)==B];
while sum(s)==0
%循环体
end;
s=[a(i,1)==a(i:2),a(i,1)==A,a(i,2)==A,a(i,1)=B,a(i,2)==B];
while sum(s)==0
%循环体
end;
追问
The expression to the left of the equals sign is not a valid target for an assignment
出了这句红色的提示,好像不行唉。
追答
%我编了一个示例,或许有启发?
clear,clc,close;
s=[1 1 1 1 1]; %为逻辑数组s赋初值保证进入循环
m=1;n=1;
while sum(s)~=0 %只要逻辑数组s里有一个为真,s之和就不为0,就继续循环
n=n+1;
m=m+2;
s=[m==1,m==3,m==2,n==4,n==2]; %将循环中的逻辑变量赋给s,直到s全部为0为止
end;
disp(m),disp(n);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我认为按照提问者的编程写法也是可以的。||也可以表示或。
希望楼主能找到问题所在,而不是回避问题,选择其他的编程思路。
希望楼主能找到问题所在,而不是回避问题,选择其他的编程思路。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询