从python脚本我使用'subprocess.Popen'调用Matlab(v2011B)函数。这是来自python的代码:
command = "matlab -nodisplay -nosplash -r -wait \"MyMatlabFunction(\'%s\',\'%s\'), exit\"" % (var1, var2)
args = shlex.split(command)
process = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=pathScripts, shell=False)
stdout, stderr= procesoMatlab.communicate()
print stderr
在我的Matlab函数中,我有一个像这样的try-catch块:
try
do myStuff
catch err
fprintf(2, getReport(err))
end
关键是当我在Matlab上得到一个异常时,python子进程模块没有在'stderr'上收到任何值。
如何在python脚本中捕获Matlab异常/错误?