我已经安装了mlab来运行python中的一些.m脚本。
我已经从this回答测试了代码并且效果非常好。但是,当我尝试使用run命令运行脚本时,我的问题就出现了。
这是我尝试过的一切。
foo.m
function sum = foo(a,b)
sum= a+b;
fprintf ('sum', sum);
test.py
from mlab.releases import latest_release as matlab
sum= matlab.run('foo.m',5,6)
print sum
这给出了错误
sum=matlab.run('foo.m',5,6)
File "D:\Program_Files\python\lib\site-packages\mlab-1.1.4
py2.7.egg\mlab\mlabwrap.py", line 607, in mlab_command
return self._do(name, *args, **update({'nout':nout}, kwargs))
File "D:\Program_Files\python\lib\site-packages\mlab-1.1.4-
py2.7.egg\mlab\mlabwrap.py", line 542, in _do
handle_out(mlabraw.eval(self._session, cmd))
File "D:\Program_Files\python\lib\site-packages\mlab-1.1.4-
py2.7.egg\mlab\mlabraw.py", line 67, in eval
matlab.eval(exp)
File "D:\Program_Files\python\lib\site-packages\mlab-1.1.4-
py2.7.egg\mlab\matlabcom.py", line 89, in eval
raise MatlabError(ret[begin:])
mlab.matlabcom.MatlabError: Error using run
Too many input arguments.
然后我尝试将参数作为字典传递给here。
function sum = foo(args)
a= args.a
b= args.b
sum= a+b;
fprintf ('sum', sum);
在python中,
sum=matlab.run('foo.m',{'a':5,'b':6})
print sum
导致错误,
sum=matlab.run('foo.m',{'a':5,'b':6})
File "D:\Program_Files\python\lib\site-packages\mlab-1.1.4-
py2.7.egg\mlab\mlabwrap.py", line 607, in mlab_command
return self._do(name, *args, **update({'nout':nout}, kwargs))
File "D:\Program_Files\python\lib\site-packages\mlab-1.1.4-
py2.7.egg\mlab\mlabwrap.py", line 534, in _do
mlabraw.put(self._session, argnames[-1], arg)
File "D:\Program_Files\python\lib\site-packages\mlab-1.1.4-
py2.7.egg\mlab\mlabraw.py", line 76, in put
matlab.put({var_name : val})
File "D:\Program_Files\python\lib\site-packages\mlab-1.1.4-
py2.7.egg\mlab\matlabcom.py", line 128, in put
self.client.PutWorkspaceData(name, 'base', val)
File "<COMObject matlab.application>", line 3, in PutWorkspaceData
TypeError: Objects of type 'dict' can not be converted to a COM VARIANT
在我真的厌倦后决定运行一个没有任何函数和参数的简单文件。
foo.m
clear all;
fprintf('This is python calling matlab');
test.py
matlab.run('foo.m')
这没有给我任何错误,但我也没有看到任何印刷品。
我现在不知道怎么办。我试图按照一些答案中的建议安装mlabwrap,但安装本身在Windows中不起作用。由于mlab只是一个重新包装的版本,我认为它会顺利运行。我已经彻底调查了这里的所有问题,没有任何帮助我。
那么基本上如何使用mlab运行.m文件?争论甚至更好。