Numpy's allclose 如果两个数组在容差范围内逐元素相等,则返回 True。
在 Matlab 中是否有等价物?
我不知道。但它的描述
如果以下等式是元素级 True,则 allclose 返回 True。
绝对(a - b) <= (ATOL + RTOL * 绝对(b))
在 Matlab 中很容易模仿:
all( abs(a(:)-b(:)) <= atol+rtol*abs(b(:)) )
其中a
和b
是数组(相同的形状,任意数量的维度),atol
是绝对公差,rtol
是相对公差。
如果您还想专门检查形状是否相同:
isequal(size(a), size(b)) && all( abs(a(:)-b(:)) <= atol+rtol*abs(b(:)) )
注意:您不应该使用NumPy的默认rtol
和atol
,由他们自己承认。请参阅正在进行的讨论。