使用mlabwrap实现numpy与matlab接口

6 投票
2 回答
832 浏览
提问于 2025-04-15 17:12

我想找个简单的方法来可视化我的一些numpy数据,然后我发现了mlabwrap这个包,看起来很不错。我想创建一个简单的图表,并且希望它能随着数据的变化而更新。

这是我想要复制的matlab代码

>> h = plot([1,2,3], [1,2,3], '-o');
>> set(h, 'XData', [0,0,0]);
>> drawnow();

到python中

>> from mlabwrap import mlab
>> h = mlab.plot([1,2,3], [1,2,3], '-o')
>> mlab.set(h, 'XData', [0,0,0])
>> mlab.drawnow();

不过,倒数第二条命令出现了错误信息

error: One or more output arguments not assigned during call to "set".

有没有什么建议可以解决这个问题?

2 个回答

5

因为 set 这个函数不需要输出结果,所以我们需要告诉 mlabwrap 不要给它任何输出参数,这样才能避免上面提到的错误信息。

mlab.set(h, 'XData', [0,0,0], nout=0)
6

可能是因为你没有把matlab的返回值保存下来,所以mlab有点不高兴,特别是在调用set()的时候...

我这边没有安装这个,你执行 someval = mlab.set(h,'XData') 会得到什么结果呢?

补充一下:你也可以试试用nout... mlab.set(h,'XData',[0,0,0],nout=0)

撰写回答