다음과 같은 문제가 있습니다. 나는 그런 방법으로 pyplot에서 사용할 수있는 방법으로 다음과 같은 기능python matplotlib.pyplot 및 numpy 문제
def sigLinZ(self,val,omega):
A = 1
C = 0
D = 1
B =1./(omega*val*1j)
return np.asmatrix(np.array([[A,B],[C,D]]))
을 평가할 :
omega = numpy.arange(0,100,1)
y = classInstance.sigLinZ(12,omega)
plt.plot(omega,y)
하지만이 작동하지 않습니다. 파이썬은 말합니다 :
Traceback (most recent call last):
File "testImpedanz.py", line 132, in test6_lineImpedanz
print "neue Matrix: ", lineImpe.sigLinZ('C',lineImpe.C(),np.array([600e6,300e6]))
File "/afs/physnet.uni-hamburg.de/users/ap_h/pgwozdz/Dokumente/PythonSkriptsPHD/ImpedanzCalculation.py", line 350, in sigLinZ
return np.mat(np.array([[A,B],[C,D]]))
TypeError: only length-1 arrays can be converted to Python scalars
나는 numpy 함수에 대해 잘 알고 있지만이 함수는 잘 작동하지만 내 함수에서는 전혀 작동하지 않습니다.
문제는 여기에 매트릭스가 필요하다는 것입니다. sigLinZ를 몇 번 호출 한 후 몇 가지 데이터 요소를 맞추기 위해 사용되는 행렬 항목에서 함수를 파생합니다. 그러나 이것은 scipy.optimize.curve_fit에서 예상되는대로이 함수를 분명히 호출 할 수 없기 때문에이 시점에서 중단됩니다. 간단하기 때문에 코드에서이 지점을 막 알았습니다. –
@PaulGwozdz 편집본이 원하는 것을 제공한다고 생각합니다. 여전히 문제가 생겨서 Stack Overflow에 오신 것을 환영합니다! – Hooked
Ok 그러면 2x2 행렬이 반환됩니다. 요소는 배열입니다. 내가 원하는 것은 모든 오메가에 대해 목록으로 전달하는 것입니다. 모든 항목이 복소수 인 2x2 행렬을 원합니다. 동작은 x = np.range (0,10,1) 및 y = np.sin (x)와 같아야합니다. 여기서 y는 sin 함수의 값을 포함하는 목록입니다.나는 목록으로 전달하고자하는 오메가에 의존하는 2X2 matrizes의 목록을 원합니다. –