matlab - 如何让我的 MatLab (.m) 文件的所有行运行?
问题描述
我有一个 .m 文件,当我手动运行它时(意味着已经在 MatLab 中,然后键入三行),它就像它应该运行的那样运行。
我想要做的是将这三行放入 am 文件并让它运行,而不是我必须在 MatLab 中输入这些行
这是我尝试运行的名为“ABOVE2019_TF01_MatLabCommands_Test.m”的 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
?
推荐阅读
- android - Google Fit - 与 Session API 保持距离
- vim - Vim 在正常模式下替换到行尾
- json - 从 Oracle PL/SQL 中的表生成 json 文件
- html - 使用引导程序将两个表放在 html 中
- amazon-web-services - 如何在没有名称的情况下将文件上传到 S3
- c++ - libtorch 中 numpy.spacing(1) 的等价物是什么?
- android - 尝试从 JSON 文件的最后一个条目检索数据时出错
- javascript - 如何从反应数组返回中删除双引号?
- javascript - 使用Javascript根据值更改表数据值颜色
- google-cloud-platform - 如何使用谷歌云视频智能名人识别?