我想在命令行上评估一个MATLAB表达式。我写了类似用matlab不扩展glob -r
$ matlab -nojvm -r "disp(1 + 2); exit"
这打印一些启动样板,然后3,然后把我带回壳。问题是,如果表达式中有一个*
,它看起来像MATLAB总是扩展它 - 如果我写1 * 2
而不是1 + 2
,我得到一个Unexpected MATLAB expression
错误,因为*
被替换为当前文件的空格分隔列表目录。
我试过用反斜杠以某种方式转义,或者在eval
中包装表达式,但*
甚至在字符串内扩展。我很确定这是MATLAB做扩展,而不是外壳。
有没有办法解决这个问题?或者正在评估任意表达式而不是matlab -r
的预期用途?如果是这样,有没有更好的方法来做到这一点?
我想你会需要把这些表达式放在m文件中的某个函数中,然后执行这个函数。 – Marcin