[英]How do i get all lines of my MatLab (.m) files to run?
我有一個.m文件,當我手動運行它(意味着已經在MatLab中,然后鍵入三行)時,它會按預期運行。
我想做的是將這三行放入am文件並運行,而不必在MatLab中一次輸入這些行
這是m文件,我正在嘗試運行名為“ ABOVE2019_TF01_MatLabCommands_Test.m”的文件
這是其中的三行:
in_dir_list = {'/j078_8/58667_TF01_G11','/j078_8/58667_TF01_G09',};
out_dir_list = {'/j078_8/58667_TF01_G11','/j078_8/58667_TF01_G09',};
resid_process_GPS(in_dir_list,out_dir_list);
(再次在MatLab中運行這三行,就像我期望的那樣)
所以我嘗試像這樣運行ABOVE2019_TF01_MatLabCommands_Test.m文件
/Applications/MATLAB_R2017a.app/bin/matlab -r "cd /volumes/promiseraid9/workspace/colleen/NewResiduals/j078_8; try, run('ABOVE2019_TF01_MatLabCommands_Test.m'); end; quit"
它沒有錯誤或只是從MatLab退出而不是運行第三行
如果相反,我將m文件的第三行更改為只打印出in_dir_list文件。 上面的命令將打印出沒有問題。 但是問題出在第三行。 無論出於何種原因,以上代碼都不會運行第三行。 我究竟做錯了什么?
您正在使用try
語句,而沒有捕獲或處理發生的任何異常。 因此,腳本ABOVE2019_TF01_MatLabCommands_Test.m中發生的任何錯誤都不會返回到命令行。
您可以通過從命令行運行以下代碼來驗證這一點:
try; asdfasdfalwelknwerewr_THIS_LINE_SHOULD_ERROR; end;
您應該使用catch
語句來處理所有返回的異常。
如果您是在MATLAB桌面環境(維護用於搜索函數的路徑)之外的環境中運行此函數,那么您確定函數位於搜索路徑中嗎? resid_process_GPS
, resid_process_GPS
位於名為/j078_8
的文件夾中?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.