0

我正在使用 python 的 matlab 引擎。我的目标是从 python 将一些信息传递给我的 matlab 脚本,然后存储结果。如果我创建了一个包含所有我想要的值的 matlab 数组,我就能够做到这一点,但我真的很想要一本字典(这样我就可以记住什么值与什么变量对应,或者如果我将来更改我的 matlab 脚本)。这是我尝试过的:

MATLAB函数:

function out = mymatlabfunc(x,y)
    # compute stuff
    out = py.dict('interesting variable 1', x_out, 'interesting variable 2', y_out, ...);

在python中:

eng = matlab.engine.start_matlab()
xdata, ydata = matlab.double(x), matlab.double(y)
resultdict = eng.mymatlabfunc(xdata,ydata)

不幸的是,这并没有返回我的字典,而是一个我不知道如何处理的 matlab.object。是否可以返回我的字典,或者我应该简单地从 matlab 返回数字并在 python 中制作我的字典?

4

2 回答 2

0

您可以执行 dir (resultdir) 以了解可用的方法。

于 2015-06-21T13:46:05.700 回答
0

我从mathworks 网站上弄明白了。只需为脚本的返回值创建一个 matlab 结构,python 就会将其视为字典。所以我的matlab代码现在是:

function out = mymatlabfunc(x,y)
    # compute stuff
    out = struct('interesting variable 1', x_out, 'interesting variable 2', y_out, ...);
于 2015-06-22T16:03:29.860 回答