【发布时间】:2019-01-31 07:39:23
【问题描述】:
我正在为 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 中制作我的字典?
【问题讨论】:
-
从 m 端看,它只是一个“Python 对象”,因为 matlab 不支持字典。只需在其上调用
get之类的方法即可获得您想要的任何东西。 -
@Daniel 我收到一条错误消息,指出 matlab.object 没有属性“get”。 Python 仍然将其视为 matlab 对象,而不是字典。
标签: python matlab matlab-engine