一道Matlab题目,a=1:2:7;b=3:6;c=a+(a>3)&(b<5);执行后,c的值是【1 1 0 0】为什么

 我来答
wacs5
2011-05-24 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2821万
展开全部
a=1:2:7; %a=[1,3,5,7]
b=3:6; %b=[3,4,5,6]
c=a+(a>3)&(b<5); %相当于(a+(a>3)) & ((b<5))
a>3返回的是a中各个元素是否大于3,返回的应当是[0,0,1,1]
a+(a>3)=[1,3,6,8]
b<5返回的是[1,1,0,0]
进行&操作,即
[1,3,6,8]&[1,1,0,0]
&操作数中如果为非零,就认为是1

[1,1,1,1]&[1,1,0,0]
只有两个都为1的时候,&的结果为1
最后得到
[1,1,0,0]
zhouda13
2011-05-24 · 超过14用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:0
展开全部
注意符号的优先级问题,你如果在(a>3)&(b<5)外面再加个()的话应该可以得到你要的答案,这里先(a+(a>3))了,然后再&的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanglelebb
2011-05-24 · TA获得超过300个赞
知道答主
回答量:60
采纳率:0%
帮助的人:24.7万
展开全部
是符号优先级的问题啦,c=a+((a>3)&(b<5));结果就不一样了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式