gpt4 book ai didi

matlab - 不是 Matlab 中的运算符行为异常

转载 作者:行者123 更新时间:2023-12-02 22:31:08 25 4
gpt4 key购买 nike

在我的代码中,我需要检查向量的两个连续成员之间的差值对是否相等/不相等,然后相应地做一些事情。现在 Matlab 中发生了一件奇怪的事情,如果我有两对两个连续的数字,那么当我使用

(x(i+3) - x(i+2)) ~= (x(i+1)-x(i)) 

它给了我一个 1,即使双方是平等的。我认为原因是存在一些舍入误差但不太确定。例如,

x = [0,0.16,0.32,0.48,0.64,0.80];
>>a = x(5) - x(4)

a =

0.1600

>>b = x(4) - x(3)

b =

0.1600

>>a-b

ans =

5.5511e-17

知道如何解决这个问题吗?对于这类问题,是否有任何不同的策略可以绕过 ~=== 运算符?

提前谢谢你们。

最佳答案

您不应该以这种方式比较 float 是否相等。更可靠的方法是使用 abs(a-b)<eps如果您要测试是否相等。

关于matlab - 不是 Matlab 中的运算符行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com