为什么我得到不正确的结果与浮点运算时使用冒号运算符?

8视图(30天)
当创建一个向量类型的双重使用冒号算子,对向量运算/关系操作可能产生不正确的结果。
myvector = 0: .1:1.1;
发现(myvector = =。9)
生成以下输出:
ans =
矩阵:1-by-0

接受的答案

MathWorks支万博1manbetx持团队
编辑:MathWorks支万博1manbetx持团队 2023年4月16日
这种行为是由于精度浮点算术的局限性。当指定一个区间[a, b]在步骤d使用冒号操作符(d: b), MATLAB生成间隔使用+ xd上半年和下半年使用b-xd,其中x是一个自然数。
因此,有一个更大的舍入误差的积累向中间生成的向量。任何后续算法对向量/关系操作可能会产生意想不到的结果,因为这些舍入误差。
编写代码来执行这样的操作时使用最佳实践在浮点数。在这可以找到相关的建议

更多的答案(0)

s manbetx 845

社区寻宝

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

开始狩猎!