在多个if语句的逻辑测试失败

20视图(30天)
Tailman
Tailman 2018年7月8日
编辑: Tailman2018年7月9日
你好,我想要运行一个if语句与多个条件如下,
如果abs (a-a_t) > 0.0001 & & abs (b-b_t) > 0.00001 & & abs (c-c_t) > 0.0001 & & abs (d-d_t) > 0.00001
x = 0;
y = 0;
结束
即使所有的条件都满足,x和y的值不更新。但是,它的工作原理,如果我们只有两个条件(我试过不同的两个变量值组合工作,但是使用所有条件在不同的括号不工作)。MATLAB文件说,可以使用多个逻辑运算符,但它似乎并没有在我的工作情况。逻辑运算符的数量有限制,可以合并吗?或者,我少了什么吗?
谢谢你的建议。
2的评论
Tailman
Tailman 2018年7月8日
你好斯蒂芬,
谢谢你的快速回复。
这是令人费解的,更不用说尴尬。我试图再次运行代码,发现它正在运行。上次我不确定是什么问题(它是相同的代码,输入当时)。再次感谢你的回复,尽管!

登录置评。

接受的答案

dpb
dpb 2018年7月8日
编辑:dpb 2018年7月8日
显然这个问题可能情况下不是之一 T 或者一些类似的失误,但说明了编写代码所固有的困难sequentially-named变量。使用数组来代替。
如果已经定义了一个变量 数据 和相匹配的测试值,那么可以编写以下代码更简洁,更容易和调试
data = [a b c];%数据数组(*)
测试= [a_t b_t c_t];%相关的测试值
lims = (0.0001 - 0.00001, 0.0001,];%和标准
如果所有(abs(测试数据)< lims%看看好了
(* ),当然,这并不是旨在建议每个人都应该写具体的行连接所有这些变量创建一个;用Matlab的矢量特性最初创建变量时,通过读取一个或多个文件或其他计算的结果,等等。
不要创建的问题开始尝试修复后……
7评论
Tailman
Tailman 2018年7月9日
编辑:Tailman 2018年7月9日
对不起,我删除了以前的评论,而不是编辑它(要点——我用& &因为第一个值收敛的时候,剩下的三个也应该聚集,因此,当abs (a-a_t) < 0.0001,其他也应该小于0.0001)。
是的,我的意思是,第一个值最终会收敛。因此,如果第一个条件被满足,应该满足所有其余的本质问题。但仍然,我认为使用”或“条件将是更好的选择,以防发生意外。
同时,我认为如果不满足第一个条件,& &就跳过,其余部分的逻辑语句将导致一个0,而”或“将继续检查剩下的我们可以1的结果。这是相反的?

登录置评。

更多的答案(0)

类别

找到更多的在循环和条件语句帮助中心文件交换

下载188bet金宝搏


释放

R2017b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!