我正在通过Python运行Matlab脚本。出于某些原因,我使用Python中的os.system('matlab -batch "my_script;"')运行它。假设Matlab脚本中有一个错误。此错误将作为Matlab工作空间打印在终端窗口上,但我希望捕获python级别的错误消息并将其用于其他目的(例如将其发送出去或保存到txt文件中.)。如果你能帮我这个忙我会很感激的。
注意,出于一个原因,我不能在Python中使用Matlab引擎包,所以我使用的是system命令。
发布于 2021-12-20 01:45:33
我找到了解决办法。如果有人有类似的问题,请回答我的问题:
在您的Matlab脚本中,可以这样做:
if exist('error_message', 'file')
delete('error_message');
end
try
your_script_or_any_operation;
catch ME
diary('error_message')
disp(ME.message);
end这将在error_message文件中写入错误。
发布于 2021-12-20 02:19:57
您应该使用subprocess.run而不是os.system。您将能够将stderr ( MATLAB在使用-batch时向其写入错误消息的流)作为字符串捕获。这将避免需要文件来捕获错误消息。
https://stackoverflow.com/questions/70405809
复制相似问题