Python 高效地将复杂的Matlab引擎阵列转换为numpy ndarray
按照中的答案,通过_data属性访问matlab引擎数组似乎效率更高。Python 高效地将复杂的Matlab引擎阵列转换为numpy ndarray,python,matlab,numpy,type-conversion,Python,Matlab,Numpy,Type Conversion,按照中的答案,通过_data属性访问matlab引擎数组似乎效率更高。 然而,当Matlab返回的数组是“复杂单”数组时,似乎没有_数据属性。是否有一种等效的快速访问复数数组的方法?一种可能的解决方法是从Matlab返回两个实数数组(一个包含实数部分,另一个包含虚数部分),并用Python构建复数值 M_real, M_imag = myMatlabFunction() M_real_np = np.array(M_real._data) M_imag_np = np.array(M_imag.
然而,当Matlab返回的数组是“复杂单”数组时,似乎没有_数据属性。是否有一种等效的快速访问复数数组的方法?一种可能的解决方法是从Matlab返回两个实数数组(一个包含实数部分,另一个包含虚数部分),并用Python构建复数值
M_real, M_imag = myMatlabFunction()
M_real_np = np.array(M_real._data)
M_imag_np = np.array(M_imag._data)
M_np = M_real_np + M_imag_np*np.complex(0,1)
然后,我们可以从快速访问每个阵列的_数据成员中获益
我仍然对更直观的解决方案感兴趣。一个可能的解决方法是从Matlab返回两个实数组(一个包含实部,另一个包含虚部),并用Python构建复值
M_real, M_imag = myMatlabFunction()
M_real_np = np.array(M_real._data)
M_imag_np = np.array(M_imag._data)
M_np = M_real_np + M_imag_np*np.complex(0,1)
然后,我们可以从快速访问每个阵列的_数据成员中获益
我仍然对更简单的解决方案感兴趣。您使用的是什么版本的MATLAB?在R2018a之前,复数数据存储为两个独立的内存块,一个用于实部,另一个用于虚部。自R2018a以来,它以交错方式存储在单个内存块中。我怀疑您的答案会因内部存储而有所不同。我使用的是R2016b。更确切地说,我正在使用MCR9.1将Python与Matlab代码的打包版本进行接口。我是Python和Python-Matlab接口的新手,我不知道如何查看可以从Matlab对象(如此数据)访问哪些成员。您使用的是什么版本的Matlab?在R2018a之前,复数数据存储为两个独立的内存块,一个用于实部,另一个用于虚部。自R2018a以来,它以交错方式存储在单个内存块中。我怀疑您的答案会因内部存储而有所不同。我使用的是R2016b。更确切地说,我正在使用MCR9.1将Python与Matlab代码的打包版本进行接口。我是Python和Python-Matlab接口的新手,我不知道如何查看可以从Matlab对象(如此_数据)访问哪些成员。