如何将numpy数组转换为Matlab矩阵?

时间:2017-10-31 10:53:28

标签: python arrays matlab numpy matrix

我有testPython.py:

import numpy as np
def numpyTest():
    print("Testing numpy...")
    x = np.array([1,2,3])
    return x

我有test.m:

clear; clc;

value = py.testPython.numpyTest()

当我运行test.m时,我得到:

测试numpy ......

value = 

  Python ndarray with properties:

           T: [1×1 py.numpy.ndarray]
        base: [1×1 py.NoneType]
      ctypes: [1×1 py.numpy.core._internal._ctypes]
        data: [1×24 py.buffer]
       dtype: [1×1 py.numpy.dtype]
       flags: [1×1 py.numpy.flagsobj]
        flat: [1×1 py.numpy.flatiter]
        imag: [1×1 py.numpy.ndarray]
    itemsize: 8
      nbytes: 24
        ndim: 1
        real: [1×1 py.numpy.ndarray]
       shape: [1×1 py.tuple]
        size: 3
     strides: [1×1 py.tuple]

    [1 2 3]

如何将python numpy数组转换为matlab矩阵?

1 个答案:

答案 0 :(得分:0)

我们必须在这里进行一些转换:

clear; clc;

value = py.testPython.numpyTest();% ndarray
pyList = value.tolist(); % ndarray -> pylist
result = cellfun(@double,cell(pyList)) %pylist-> cell array -> double array

另一种选择是通过文件传输数据,但我不喜欢它。

Matlab Docs关于Python列表转换的链接:

https://www.mathworks.com/help/matlab/matlab_external/use-python-list-of-numeric-types-in-matlab.html