Ich möchte einige Python-Code von MATLAB aufrufen, um dies zu tun, muss ich ein Matrixobjekt zu einem NumPy ndarray
, über die MATLAB-Funktion py.numpy.array
konvertieren. Das einfache Übergeben des Matrixobjekts an die Funktion funktioniert jedoch nicht. Im Moment habe ich das Problem gelöst, indem ich die Matrix in ein Zellen-Objekt umgewandelt habe, das die Zeilen der Matrix enthält. Zum BeispielKonvertieren eines MATLAB Matrixobjekts in ein Python NumPy Array
function ndarray = convert(mat)
% This conversion fails
ndarray = py.numpy.array(mat)
% This conversion works
cstr = cell(1, size(mat, 1));
for row = 1:size(mat, 1)
cstr(row) = {mat(row, :)};
end
ndarray = py.numpy.array(cstr);
Ich fragte mich, ob es eine effizientere Lösung gibt.
Denken Sie daran, Sie können Vektor nur von Matlab zu Python senden. '1XN' In' file.py' konvertieren Sie es in ein numpy ndarray. –
Welche Versionen von MATLAB und Python verwenden Sie? Was sind die Dimensionen des Arrays? Bitte geben Sie auch eine [mcve] in Ihrer Frage an. –
@TonyTannous tatsächlich denke ich, dass die Verwendung von Zellen von Zellen in numpy als 'MxN'' ndarray' richtig interpretiert wird. – AreTor