numpy allclose 的 Matlab 等价物?

ger*_*rit 4 floating-point comparison matlab floating-accuracy

Numpy 的allclose 如果两个数组在公差范围内按元素相等则返回 True

Matlab中是否有等价物?

Lui*_*ndo 5

从来没听说过。但它的描述

如果以下等式是逐元素 True,则 allclose 返回 True。

绝对(a - b)<=(atol + rtol *绝对(b))

在 Matlab 中很容易模仿:

all( abs(a(:)-b(:)) <= atol+rtol*abs(b(:)) )
Run Code Online (Sandbox Code Playgroud)

其中ab是数组(相同形状,任意维数),atol是绝对容差和rtol相对容差。

如果您还想专门检查形状是否相同:

isequal(size(a), size(b)) && all( abs(a(:)-b(:)) <= atol+rtol*abs(b(:)) )
Run Code Online (Sandbox Code Playgroud)

  • 在 MATLAB 的最后两个版本中,您可以执行 `all(...,'all')`,避免了 `(:)` 索引的需要。 (2认同)