将python-ndarray转换为matlab矩阵

2024-05-19 15:21:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我从matlab(R2015b)调用我创建的python模块。现在我注意到,我们只能向python发送一个1xN向量。在

所以我在Matlab中修复了这个问题

Matlab代码:

a = ones(3, 3);
a = a(:).';

然后我将a作为参数发送给python函数。在

^{pr2}$

现在我的问题是python不返回Matlab矩阵 我注意到我在调试时返回了一个ndarray。在

这是我的python代码:

import numpy as np


def computecoreset(mat, coresetSize):
    return np.random.choice(mat, coresetSize)

我想我需要再一次把ndarray变成矩阵

但是我如何转换它呢?在

提前谢谢!在


Tags: 模块函数代码参数npones矩阵向量
3条回答

这是一个瞎猜,因为我没有Matlab来测试它,但是我怀疑您必须返回python^{}对象,而不是numpy数组。 所以像这样:

import numpy as np
import array


def computecoreset(mat, coresetSize):
    c = np.random.choice(mat, coresetSize)
    return array.array('d', c)

为了完整起见,另一种方法是这样的:

rnd = rand(5);
py.numpy.asarray(rnd)


  Python ndarray:

    0.3112    0.6541    0.2290    0.9961    0.0046
    0.5285    0.6892    0.9133    0.0782    0.7749
    0.1656    0.7482    0.1524    0.4427    0.8173
    0.6020    0.4505    0.8258    0.1067    0.8687
    0.2630    0.0838    0.5383    0.9619    0.0844

    Use details function to view the properties of the Python object.

    Use double function to convert to a MATLAB array.

相关问题 更多 >