How do I convert matlab.double arrays to numpy arrays when using MATLAB Engine for Python?
48 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 14 Nov. 2022
Beantwortet: MathWorks Support Team
am 15 Nov. 2022
When working in Python and using the MATLAB Engine API for Python, how can I efficiently convert the matlab.double arrays to numpy arrays?
Akzeptierte Antwort
MathWorks Support Team
am 14 Nov. 2022
There are a couple of ways to accomplish this. One method is to use numpy's built-in method, 'asarray':
Start by loading your matlab.double array:
myData = eng.eval("load('{}','cluster_class','par')".format('sampleData.mat'))
With MATLAB R2022a and later, you can convert matlab.double directly to a numpy array:
a = np.array(myData['cluster_class'])
To add additional specification, use MATLAB engine's functions to convert to a Python array with 'noncomplex()', then to a numpy array:
a = np.array(myData['cluster_class'].noncomplex().toarray(), 'int')
We use the 'noncomplex()' call to retrieve the data in 1D format (provided it's noncomplex; for complex data, we can use 'real()' and 'imag()' calls). We also offer the 'toarray()' call to convert a 1D matlab.double into a Python array.array object.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Call MATLAB from Python finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!