首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从linux命令行运行Matlab函数--语法错误?

从linux命令行运行Matlab函数--语法错误?
EN

Stack Overflow用户
提问于 2020-04-07 09:00:26
回答 1查看 129关注 0票数 0

我有一个matlab函数checkMembraneSpline.m,我想使用matlab命令在命令行中运行它。我尝试了以下几种方法

代码语言:javascript
复制
matlab -r -nodisplay -nojvm "checkMembraneSpline(10,1000,'',100,500,2.5); catch; end; quit"

它返回这个隐含的错误:

代码语言:javascript
复制
/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并从那里运行函数时,

代码语言:javascript
复制
>>> checkMembraneSpline(10,1000,'',100,500,2.5)

它起作用了。我怀疑这与引号有关,但用'切换"也不起作用。我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-07 10:07:14

语句必须紧跟在-r开关之后:

代码语言:javascript
复制
matlab -nodisplay -nojvm -r "checkMembraneSpline(10,1000,'',100,500,2.5); catch; end; quit"

如果您有较新版本的MATLAB,请改用-batch开关:

代码语言:javascript
复制
matlab -nojvm -batch "checkMembraneSpline(10,1000,'',100,500,2.5);"

使用这个新的开关,您不需要有一个exit调用,它总是在竞争语句后退出。因此,捕获错误也是没有必要的。默认情况下,输出放入终端。简单多了!

参考:https://www.mathworks.com/help/matlab/ref/matlablinux.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61071219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档