在“如果”陈述中使用和运算符

4,021次(过去30天)
安德鲁
安德鲁 2011年5月10日
你好,
当我输入以下代码:
如果大小((1 2 3))= =大小([4 5 6])和大小([4 5 6])= =大小([7 8 9])
'是的'
其他的
“不”
结束
Matlab代码分析仪发出此警告消息:“当两个参数都是数字标量时,请考虑更换和使用&&以进行性能。”
所以,我使用&&而不是:
如果大小((1 2 3))= =大小([4 5 6])& &尺寸大小([4 5 6])= = ((7 8 9))
'是的'
其他的
“不”
结束
当我运行更新后的脚本时, MATLAB显示错误消息 命令窗口:
???操作数对于|,|和&&操作符必须可转换为逻辑标量值。
我该怎么做才能解决这个问题?提前谢谢。
安德鲁Deyoung.
卡内基梅隆大学
7评论
珍妮
珍妮 2016年8月2日
马特,我仍然使用课堂上的笔记,感谢您的帮助。我需要得到这个权利。

登录评论。

接受的答案

安德鲁·纽厄尔
安德鲁·纽厄尔 2011年5月10日
问题是大小返回向量:
尺寸([1 2 3])
ans =
1 3.
相反,使用 元素个数
如果元素个数((1 2 3))= =元素个数([4 5 6])& &元素个数([4 5 6])= =元素个数([7 8 9])
disp ('是的'
其他的
disp (“不”
结束
或者你可以使用 All (size([1 2 3]))==size([4 5 6]) 等。
我也放了 disp 处理其他警告的命令。

更多答案(1)

肖恩·德Wolski
肖恩·德Wolski 2011年5月10日
作为安德鲁彻底和好的解决方案的附录,你可以直接检查尺寸:
如果(isequal(size([1 2 3]),size([4 5 6])))
disp ('是的'
其他的
disp (“不”
结束
如果大小不相同但元素数(NUMEL)是:
如果(isequal(((1 2 3)),大小([4;5;6))))
disp ('是的'
其他的
disp (“不”
结束
3评论
安德鲁·纽厄尔
安德鲁·纽厄尔 2011年5月10日
好点子。

登录评论。

下载188bet金宝搏

社区寻宝

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!