逐元素矩阵运算返回零(由于整数除法)

时间:2013-01-22 19:42:32

标签: python matrix numpy matplotlib plot

我正在用Python绘制3D表面。这里muy1和muy2是由meshgrid创建的两个矩阵:

[[-5.   -4.75 -4.5  ...,  4.25  4.5   4.75]
 [-5.   -4.75 -4.5  ...,  4.25  4.5   4.75]
 [-5.   -4.75 -4.5  ...,  4.25  4.5   4.75]
 ..., 
 [-5.   -4.75 -4.5  ...,  4.25  4.5   4.75]
 [-5.   -4.75 -4.5  ...,  4.25  4.5   4.75]
 [-5.   -4.75 -4.5  ...,  4.25  4.5   4.75]]

之后计算函数Z并绘制

Z=zeros((40,40))
for xi in x:
    temp=1/2*(1-muy1)**2-1/2*(1-muy2)**2;
    print temp;
    Z=Z-temp;
print "Final"
print Z

但是我一直让Z为0.这是什么原因?

1 个答案:

答案 0 :(得分:3)

temp为零,因为它以1/2开头,它是整数除法(结果为零)。在这两个地方使用1./20.5来防止这种情况发生。

temp=1./2*(1-muy1)**2-1./2*(1-muy2)**2