Why am I getting 'MatlabExecutionError: Too many output arguments.' when using the Matlab engine in Python?
Mostrar comentarios más antiguos
Here is the code I am running on each side:
Python
>>> m1 = matlab.engine.start_matlab()
>>> testpath = 'Path/to/file/containing-testfunc.m'
>>> m1.addpath(testpath)
*lots of path gibberish*
>>> m1.testfunc()
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/Library/Python/2.7/site-packages/matlab/engine/matlabengine.py"
, line 79, in __call__
_stderr).result()
File "/Library/Python/2.7/site-packages/matlab/engine/futureresult.py"
, line 107, in result
self._future,self._nargout, None, out=self._out, err=self._err)
MatlabExecutionError: Too many output arguments.
I have double checked the path to testfunc.m, and I suspect that Matlab is able to find it because otherwise it would say it could not find it.
Here are the contents of testfunc.m:
function [] = testfunc()
a = 2
end
As indicated by the name, this function is only a test because I found this error using a more complicated function. I created the testfunc() just to try to narrow down the reasons for which I might be getting this error. I am able to run testfunc() (and my more complicated function) from the Matlab gui if I use
Python
>>> m1.desktop(nargout=0)
Matlab
>> testfunc()
a =
2
This leads me to believe there is an issue with the Matlab engine or the way I am using it.
It might be important to point out that built in Matlab functions seem to be working fine in the engine for example:
m1.workspace['testvar'] = 10
I am only having trouble using functions that I include myself.
Any help would be greatly appreciated.
4 comentarios
Richard McEver
el 1 de Jul. de 2015
Yehonatan Peleg
el 23 de Dic. de 2015
Thanks...
rui gao
el 13 de Nov. de 2019
Thanks, it works.
We can also put some input parameters before the 'nargout=0' for the situation that the function need some input.
For example:
eng = matlab.engine.start_matlab()
eng.MatlabFunctionName(1, 2, 3, nargout=0)
eng.quit()
Nagabhushan SN
el 20 de Abr. de 2020
Thanks! very useful. Is it possible to upvote a comment here? Like in SO
Respuesta aceptada
Más respuestas (1)
Khaoula Mosbahi
el 9 de Ag. de 2021
0 votos
hello everyone , i need your help , when i run matlab code en matlab i found this result 

but when i try this code:
eng = matlab.engine.start_matlab()
kh=eng.Main(7, nargout=0)
print(kh)
the result always NONE
help please
Categorías
Más información sobre Call MATLAB from Python en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!