我想传递字符串路径到我定义并遇到问题的matlab函数。这里是我尝试的总结:在Matlab bash中传递路径字符串作为参数
我想传递一个字符串变量(在这种情况下是一个路径)在bash脚本中声明将该变量传递给我自己的函数。例如
var=/usr/local/
matlab -nosplash -nodesktop -nojvm -r "my_function($var)"
我得到了错误:
-bash: syntax error near unexpected token `('
为了解决这个问题,我想:
var=/usr/local/
matlab -nosplash -nodesktop -nojvm -r "my_function\($var\)"
这是不是我找到标准的引用我在网上找。无论如何,MATLAB运行,但我得到的错误:
Error: The input character is not valid in MATLAB statements or expressions.
要查看变量是否正确转换,我试着回声:
var=/usr/local/
echo matlab -nosplash -nodesktop -nojvm -r "my_function\($var\)"
,实现输出是:
matlab -nosplash -nodesktop -nojvm -r "my_function(/usr/local/)"
由于变量不是字符串,错误是有道理的,我试过了:
var=/usr/local/
var=$(printf "'%s'" $var)
echo matlab -nosplash -nodesktop -nojvm -r "my_function\($var\)"
表示:
matlab -nosplash -nodesktop -nojvm -r "my_function('/usr/local/')"
所以,我运行上面的代码,但我仍然会遇到的错误:
Error: The input character is not valid in MATLAB statements or expressions.
要检查是否在路径上存在的功能,我想这两个PWD和存在()为文件。例如
matlab -nodesktop -nosplash -nojvm -r "exist('my_function.m')"
在这种情况下,奇怪的是,我并不需要\(\)
和返回2,这意味着文件在当前路径存在。
我用尽想法尝试。所以让我知道如何解决这个问题。
这是AA bash的问题不是一个matlab题 – crowdedComputeeer