2013-01-22 33 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