Matlab等价于numpy allclose?

8mmmxcuj  于 8个月前  发布在  Matlab
关注(0)|答案(1)|浏览(130)

Numpy的allclose * 如果两个数组在容差 * 内元素相等,则返回True。
Matlab中有没有等价物?

oyjwcjzk

oyjwcjzk1#

据我所知没有但它的描述
如果下面的等式是元素方面的True,则allclose返回True。
绝对值(a - b)<=(atol + rtol * 绝对值(b))
在Matlab中很容易模仿:

all( abs(a(:)-b(:)) <= atol+rtol*abs(b(:)) )

其中ab是阵列(相同形状,任意维数),atol是绝对公差,rtol是相对公差。
如果您还想特别检查形状是否相同:

isequal(size(a), size(b)) && all( abs(a(:)-b(:)) <= atol+rtol*abs(b(:)) )

注意:你不应该使用NumPy默认的rtolatol,他们自己承认。参见ongoing discussion

相关问题