我正在通過 Python 運行 Matlab 腳本。由于某些原因,我os.system('matlab -batch "my_script;"')在 Python 中運行它。假設 Matlab 腳本中有錯誤。此錯誤將作為 Matlab 作業空間列印在終端視窗上,但我想在 python 級別捕獲錯誤訊息并將其用于其他目的(例如通過電子郵件發送或將其保存到 txt 檔案...)。如果你能幫我解決這個問題,我將不勝感激。
請注意,出于某種原因,我無法在 Python 中使用 Matlab 引擎包,因此我使用的是系統命令。
uj5u.com熱心網友回復:
我找到了解決方案。如果有人遇到類似問題,請回答我的問題:
在你的 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檔案。
uj5u.com熱心網友回復:
您應該使用subprocess.run而不是os.system. 您將能夠將stderr(MATLAB 在您使用 時將錯誤訊息寫入其中的流-batch)作為字串進行捕獲。這將避免需要檔案來捕獲錯誤訊息。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/393316.html
上一篇:為什么我在嘗試通過Matlabftp訪問Box時會“連接被拒絕”?
下一篇:唯一的一對單元格,其中順序不重要
