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
展开
 我来答
楼为0H3cf0
2011-04-02 · TA获得超过769个赞
知道小有建树答主
回答量:150
采纳率:50%
帮助的人:151万
展开全部
可以用逻辑表达式,但是楼主的写法错误。Matlab里的或关系是一条竖线,不是两条。呵呵。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
符赤錦
2011-04-02
知道答主
回答量:8
采纳率:0%
帮助的人:6.9万
展开全部
%试试逻辑数组:^_^
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);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
evakasch
2013-01-16 · TA获得超过187个赞
知道答主
回答量:31
采纳率:100%
帮助的人:12.3万
展开全部
我认为按照提问者的编程写法也是可以的。||也可以表示或。
希望楼主能找到问题所在,而不是回避问题,选择其他的编程思路。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式