如何在if语句中使用不等于“~=”运算符?

1991年视图(过去30天)
苏海尔·艾哈迈德
苏海尔·艾哈迈德 2017年2月21日
评论: 沃尔特·罗伯森 2017年11月28日
我的代码在“==”下运行正常,但在“~=”下运行不正常。如果用户输入A或B,我希望它不会显示“error”
x=输入(“输入x”,'s')
如果(十)~=“A”)||(十)~=“B”)
disp(“错误”);
终止

0评论

登录以发表评论。

公认的答案

约翰·德雷科
约翰·德雷科 2017年2月21日
编辑:约翰·德雷科 2017年2月21日
基本逻辑问题?
您希望仅当A不在集合{'A','B'}中时返回错误。所以调用ismember可能是一个不错的选择。
不管怎样,根据您所采用的方法,如果x等于“A”,则该子句的后半部分将为真,即使该子句的前半部分为假
假| |真
这是真的。
您要求的结果只有在子句的两部分都为真时才为真。请使用逻辑and,而不是逻辑or。
如果(十)~=“A”)&&(x)~=“B”)

0评论

登录以发表评论。

更多答案(2)

1月
1月 2017年2月21日
记住,否定
(十)==“A”)| |(x)==“B”)
是:
~(x)==“A”)| |(x)==“B”)) ==>
~(x)==“A”)&&~(x)==“B”) ==>
(十)~=“A”x ~=“B”)

2评论

林卓英
林卓英 2017年11月28日
嗨,我有一个类似的问题:
当我打字时:
如果(十)~=“a”x ~=“p”x ~=“不”)
fprintf('错误:您输入了错误的选择。')
终止
但它也表明:
操作数到| |和&&运算符必须可转换为
必然的标量值。
错误长期(第4行)
如果(十)~=“a”x ~=“p”x ~=“不”)
沃尔特·罗伯森
沃尔特·罗伯森 2017年11月28日
如果任何((x)~=“a”)&(x)~=“p”)&(x)~=“不”))
fprintf('错误:您输入了错误的选择。')
终止
如果~all(ismember(x{“a”,“p”,“不”}) )
fprintf('错误:您输入了错误的选择。')
终止

登录以发表评论。


托尔斯滕
托尔斯滕 2017年2月21日
编辑:托尔斯滕 2017年2月21日
如果用户输入A,则x~=B为真,因此(x~='A')| |(x~='B')为真,因此显示“错误”。
B也一样。
最美好的祝福
托尔斯滕。

0评论

登录以发表评论。

下载188bet金宝搏

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!