ниже приведен (очень) сокращенный вариант моей программы
вектор normvecs не перезаписывается, вы сможете убедиться сами, только запустив этот фрагмент кода, параметры верны geom функция принимает массив n + 1 X 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 (без ошибок ... но просто напечатал одно и то же)
Возможно, я не звучу ясно, если однажды вы побежите, вы увидите, что я пытаюсь сказать.
в чем проблема? (Если это так!)