If-condition:如果数字是+ -5%的另一个

3次观点(过去30天)
Lukas Netzer.
Lukas Netzer. 于2021年5月16日
编辑: 1月 于2021年5月16日
我正在尝试设置这样的if-条件:
为了x = 1:1:尺寸(t {n})
如果t {n} .sh(x)= + -0.05 t {n} .diffmileagekm(x)%在这里是我试图得到这种情况的地方
分析
结尾
结尾
例如。SH(1)= 50和Diffmileagekm(1)= 49,Sh在达到-5%的差异差异且计算的范围内,计算将进行计算。
有没有办法做到这一点?
1条评论
Lukas Netzer.
Lukas Netzer. 于2021年5月16日
我现在设置了这样的If-条件:
如果(t {n} .sh(x)> = 0.95 * t {n} .diffmileagekm(x))&&(t {n} .sh(x)<= 1.05 * t {n} .diffmileagekm(x))
有没有更好的方法来做到这一点 - 或者是这样的好的吗?

登录评论。

接受答案

1月
1月 于2021年5月16日
编辑:1月 于2021年5月16日
你确定,这是正确的:
为了x = 1:1:尺寸(t {n})
如果t {n} .sh(x)=......
是否具有与t {n}的大小一样多的元素?
注意:1:大小(x)可能无法做到,您的期望。size(x)回复向量。1:[A,B]回复1:A和忽略B。这至少令人困惑。更喜欢Numel(x)或指定具有大小的尺寸(x,1)。
如果你的代码是正确的,这将做你想要的:
sh = t {n} .sh;百分比更容易阅读和更快
diffm = t {n} .diffmileagekm;
为了x = 1:尺寸(t {n},1)
如果ABS((sh(x) - diffm(x)))<0.05 *差异(x)%[编辑]
......
结尾
结尾

更多答案(1)

图像分析师
图像分析师 于2021年5月16日
如果语句不合适。有一件事你在t的前面没有*。其次,你正在使用=而不是==。第三,+ - 并不意味着加或减去 - 它意味着减去(如果它甚至有效)。固定代码:
为了x = 1:1:尺寸(t {n})
差异= abs(t {n} .sh(x) - t {n} .diffmileagekm(x));%abs()负责加号或减去(以上或下方)
如果差异<(0.05 * t {n} .diffmileagekm(x))
%差异小于你的阈值所以做某事。
分析
结尾
结尾
您也可以查看ISMemberTol()函数。

社区宝藏狩猎

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

开始狩猎!