如何运行 MatLab (.m) 文件的所有行?



我有一个.m文件,当我手动运行它时(这意味着已经在MatLab中,然后键入三行(,它就像它应该的那样运行。

我试图做的是将这三行放入一个 m 文件中并让它运行,而不是我必须在 MatLab 中键入这些行一次

im这是 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是否位于名为/j078_8的文件夹中?

最新更新