在多个if语句的逻辑测试失败
20视图(30天)
显示旧的评论
你好,我想要运行一个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文件说,可以使用多个逻辑运算符,但它似乎并没有在我的工作情况。逻辑运算符的数量有限制,可以合并吗?或者,我少了什么吗?
谢谢你的建议。
接受的答案
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的矢量特性最初创建变量时,通过读取一个或多个文件或其他计算的结果,等等。
不要创建的问题开始尝试修复后……