小编Mar*_*nes的帖子

Matlab 日志与 Numpy np.log 不匹配

在将旧的 Matlab 代码重写为 NumPy 时,我注意到对数计算方面的差异。在 NumPy 中,我使用np.log,Matlab 使用log函数。

b = [1 1 2 3 5 1 1];
p = b ./ sum(b);
sprintf('log(%.20f) = %.20f', p(5), log(p(5)))
Run Code Online (Sandbox Code Playgroud)
import numpy as np
b = np.array([1, 1, 2, 3, 5, 1, 1])
p = b.astype('float64') / np.sum(b)
print(f'log({p[4]:.20f}) = {np.log(p[4]):.20f}')
Run Code Online (Sandbox Code Playgroud)

对于配备 M1 芯片的 MacBook Pro 2020,我发现小数点后第 16 位不匹配。

log(0.35714285714285715079) = -1.02961941718115834732  # Matlab
log(0.35714285714285715079) = -1.02961941718115812527  # NumPy
Run Code Online (Sandbox Code Playgroud)

我想得到完全相同的结果。知道如何修改我的 Python 代码吗?

precision matlab numpy logarithm numeric

1
推荐指数
1
解决办法
80
查看次数

标签 统计

logarithm ×1

matlab ×1

numeric ×1

numpy ×1

precision ×1