How do I convert matlab.double arrays to numpy arrays when using MATLAB Engine for Python?
조회 수: 44 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2022년 11월 14일
답변: MathWorks Support Team
2022년 11월 15일
When working in Python and using the MATLAB Engine API for Python, how can I efficiently convert the matlab.double arrays to numpy arrays?
채택된 답변
MathWorks Support Team
2022년 11월 14일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Call MATLAB from Python에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!