Matlab und Komplexe Zahlen
Verfasst: Montag 27. Januar 2020, 18:18
Hallo Zusammen
Ich bin zur Zeit dabei, die Fakultät an der ich studiere dabei zu unterstützen von MatLab auf Python umzusteigen. Ich selber bin kein riesen Python kenner möchte es aber unbedingt werden, weshalb ich auch die Arbeit erhalten habe. Ich habe mittlerweile zirka 10 Skripte übersetzt aber nun bin ich auf ein Problem gestossen bei folgendem Code:
nu = np.linspace(1, 10000, 1000) * 1e12
w = 2 * np.pi * nu
c = 3e8
l = c / nu
wp = 2 * np.pi * 3e8 / 0.01 * 1.19e5
gamma = 2 * np.pi * 3e8 / 0.01 * 6.45e2
eps = 1 - wp^2 / np.complex(w**2, gamma * w)
n = np.sqrt(eps)
R = (abs((1 - n) / (1 + n)))**2
Der Fehler befindet sich in der Zeile die mit eps = ... beginnt. und die korrespondierende MatLab zeile ist: eps=1-wp^2 ./(w.^2+i*gamma.*w);
Ich hoffe jemand kann mir helfen kann sonst, falls es bringt den Matlab Code auch noch implementieren. In Matlab ist die variable eps als 1x1000 complex double aufgelistet.
PyCharm gibt mir folgendes aus:
TypeError: only length-1 arrays can be converted to Python scalars
und bei näherem untersuchen meint es, es wäre ein 'int' gefragt es käme jedoch eine complexe Zahl.
freundliche Grüsse aus der Schweiz
Retus
Ich bin zur Zeit dabei, die Fakultät an der ich studiere dabei zu unterstützen von MatLab auf Python umzusteigen. Ich selber bin kein riesen Python kenner möchte es aber unbedingt werden, weshalb ich auch die Arbeit erhalten habe. Ich habe mittlerweile zirka 10 Skripte übersetzt aber nun bin ich auf ein Problem gestossen bei folgendem Code:
nu = np.linspace(1, 10000, 1000) * 1e12
w = 2 * np.pi * nu
c = 3e8
l = c / nu
wp = 2 * np.pi * 3e8 / 0.01 * 1.19e5
gamma = 2 * np.pi * 3e8 / 0.01 * 6.45e2
eps = 1 - wp^2 / np.complex(w**2, gamma * w)
n = np.sqrt(eps)
R = (abs((1 - n) / (1 + n)))**2
Der Fehler befindet sich in der Zeile die mit eps = ... beginnt. und die korrespondierende MatLab zeile ist: eps=1-wp^2 ./(w.^2+i*gamma.*w);
Ich hoffe jemand kann mir helfen kann sonst, falls es bringt den Matlab Code auch noch implementieren. In Matlab ist die variable eps als 1x1000 complex double aufgelistet.
PyCharm gibt mir folgendes aus:
TypeError: only length-1 arrays can be converted to Python scalars
und bei näherem untersuchen meint es, es wäre ein 'int' gefragt es käme jedoch eine complexe Zahl.
freundliche Grüsse aus der Schweiz
Retus