且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何有效地将 Matlab 引擎数组转换为 numpy ndarray?

更新时间:2023-11-29 15:17:40

在发布问题后不久我找到了解决方案.

Moments after posting the question I found the solution.

对于一维数组,只访问 Matlab 数组的 _data 属性.

For one-dimensional arrays, access only the _data property of the Matlab array.

import timeit
print 'From list'
print timeit.timeit('np.array(x)', setup=setup_range, number=1000)
print 'From matlab'
print timeit.timeit('np.array(x)', setup=setup_matlab, number=1000)
print 'From matlab_data'
print timeit.timeit('np.array(x._data)', setup=setup_matlab, number=1000)

印刷品

From list
0.0719847538787
From matlab
7.12802865169
From matlab_data
0.118476275533

对于多维数组,您需要在之后对数组进行整形.在二维数组的情况下,这意味着调用

For multi-dimensional arrays you need to reshape the array afterwards. In the case of two-dimensional arrays this means calling

np.array(x._data).reshape(x.size[::-1]).T