2013-01-22 71 views
0

我在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,这是什么原因呢?

回答

3

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

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

或'from __future__ import division' – mgilson