Von Matlab nach Python - eval()-Befehl
Verfasst: Samstag 16. September 2017, 23:34
Hallo zusammen, ich habe ein Matlab-Script, welches ich gerne in Python umschreiben möchte. Zunächst mal der ursprüngliche (Teil des) MATLAB-CODE als Minimalbeispiel:
Und mein bisheriger Versuch, das ganze in Python umzusetzen
Dabei bekomme ich folgenden Fehler
"xResul, bResul, sResul" als Array [1x5000] erzeugt und dort die zugehörigen 5000 Werte von "param" (aus der zugehörigen Zeile) hineinschreibt...
Vielen Dank schon mal im Voraus an alle, die sich damit beschäftigen!
Code: Alles auswählen
ParamName=['x'; 'b'; 's'];
initDisPar=[0.9 1.1; 0 0.05; 0.01 0.1];
n=5e3;
p=size(ParamName,1);
for j=1:p;
param(j,:)= unifrnd(initDisPar(j,1),initDisPar(j,2),1,n);
ParamResul(j,:)=[ParamName(j,:) 'Resul']
eval([ParamResul(j,:) '=param(j,:);']);
end;
Code: Alles auswählen
import numpy as np
ParamName = np.array([['x'], ['b'], ['s']], dtype=str)
initDisPar = np.array([[0.9, 1.1], [0, 0.05], [0.01, 0.1]])
n = 5000
p = ParamName.size
param = np.empty([p, n])
for j in range (0, p):
param[j,:] = np.random.uniform(initDisPar[j,0],initDisPar[j,1], n)
ParamResul = np.core.defchararray.add(ParamName, 'Resul')
ParamResul[j] = eval('param[j,:]')
Meine Frage lautet nun... Wie schreibe ich den eval()-Befehl in Python, damit er mir dynamisch die VariablenValueError: could not broadcast input array from shape (5000) into shape (1)
"xResul, bResul, sResul" als Array [1x5000] erzeugt und dort die zugehörigen 5000 Werte von "param" (aus der zugehörigen Zeile) hineinschreibt...
Vielen Dank schon mal im Voraus an alle, die sich damit beschäftigen!