我有一个matlab函数checkMembraneSpline.m,我想使用matlab命令在命令行中运行它。我尝试了以下几种方法
matlab -r -nodisplay -nojvm "checkMembraneSpline(10,1000,'',100,500,2.5); catch; end; quit"它返回这个隐含的错误:
/opt/apps/rhel7/matlabR2019a/bin/matlab: eval: line 1734: syntax error near unexpected token `('
/opt/apps/rhel7/matlabR2019a/bin/matlab: eval: line 1734: `exec "/admin/apps/rhel7/matlabR2019a/bin/glnxa64/MATLAB" -r "-nodisplay" checkMembraneSpline(10,1000,'',100,500,2.5); catch; end; quit -nojvm'但是,当我通过执行matlab -nojvm -nodisplay来启动matlab并从那里运行函数时,
>>> checkMembraneSpline(10,1000,'',100,500,2.5)它起作用了。我怀疑这与引号有关,但用'切换"也不起作用。我遗漏了什么?
发布于 2020-04-07 10:07:14
语句必须紧跟在-r开关之后:
matlab -nodisplay -nojvm -r "checkMembraneSpline(10,1000,'',100,500,2.5); catch; end; quit"如果您有较新版本的MATLAB,请改用-batch开关:
matlab -nojvm -batch "checkMembraneSpline(10,1000,'',100,500,2.5);"使用这个新的开关,您不需要有一个exit调用,它总是在竞争语句后退出。因此,捕获错误也是没有必要的。默认情况下,输出放入终端。简单多了!
参考:https://www.mathworks.com/help/matlab/ref/matlablinux.html
https://stackoverflow.com/questions/61071219
复制相似问题