python和matlab结果不一样_精准,为什么Matlab和Python numpy给出如此不同的输出?

我知道基本的数据类型,浮点类型(float,double)不能完全保留一些数字。

在将一些代码从Matlab移植到Python(Numpy)时,我发现在计算中有一些显着的差异,我认为它将恢复精准。

取下面的代码,z只归一化500维向量,只有前两个元素具有非零值。

Matlab的:

Z = repmat(0,500,1); Z(1)=3;Z(2)=1;

Za = (Z-repmat(mean(Z),500,1)) ./ repmat(std(Z),500,1);

Za(1)

>>> 21.1694

蟒蛇:

from numpy import zeros,mean,std

Z = zeros((500,))

Z[0] = 3

Z[1] = 1

Za = (Z - mean(Z)) / std(Z)

print Za[0]

>>> 21.1905669677

除了格式化在Python中显示更多的数字之外,还有一个巨大的差异(imho),大于0.02

Python和Matlab都使用64位数据类型(afaik)。 Python使用’numpy.float64’和Matlab’double’。

为什么差异如此之大?哪一个更正确?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值