1
下面是(非常)shorterned我的程序的vesrion理解困難numpy的陣列行爲
的normvecs矢量沒有覆蓋掉了,你woud能夠看到自己只是一旦你運行該代碼段中,參數是否正確 GEOM函數接受N + 1×2陣列和n作爲輸入,我想我做一些非常愚蠢的(我認爲我是),或者我不明白這種行爲
import numpy as np
#geometry calculations
def geom(pts,n):
r = np.zeros(n)
normvecs = np.zeros((n,2))
tgtvecs = np.zeros((n,2))
alphap = np.zeros(n)
cpts = np.zeros((n,2))
#collocation points
cpts[:,0] = (pts[0:n,0]+pts[1:n+1,0])/2
cpts[:,1] = (pts[0:n,1]+pts[1:n+1,1])/2
#length of panels
r[:] = np.sqrt((pts[0:n,0]-pts[1:n+1,0])**2 + (pts[0:n,1]-pts[1:n+1,1])**2)
#angle of each panel with the horizantal(chord)/refernce axis
alphap[:] = np.arctan2(pts[1:n+1,1]-pts[0:n,1],pts[1:n+1,0]-pts[0:n,0])
#normal vectors
normvecs[:,0] = -np.sin(alphap[:])
normvecs[:,1] = np.cos(alphap[:])
xx = np.cos(alphap[:])
print(normvecs[:,0],normvecs[:,1],np.cos(alphap[:]),xx)
return
geom(np.random.rand(31,2),30)
normvecs [:,1]僅顯示nomvecs [:,0]的負數 我不能覆蓋像normvecs [:,1] = xx(沒有錯誤..但只是打印相同的東西)
我可能聽起來不清楚,一旦你運行你可能會看到我在嘗試告訴。
什麼問題?(如果是這樣的!)
是沒有問題,這是一個看不見的邏輯錯誤我跳過代碼中的一行(考慮它無關緊要)張貼在我有這個(錯誤,我的壞!)賦值`tgtvecs [:,0] = np。 cos(alphap [:]); normvecs [:,] = np.sin(alphap [:])` – fedvasu 2011-08-17 13:25:05