【问题标题】:Re : Open Matlab function from command line linuxRe: 从命令行linux打开Matlab函数
【发布时间】:2013-01-09 20:41:23
【问题描述】:

我从以下问题中得到了答案。它要求我创建一个 bash 文件。问题在标题中

How to call MATLAB functions from the Linux command line?

因此我尝试了以下代码,如答案中所示。

    b_exec=matlab
    X="localize(r,q)"
    echo ${X} > matlab_command_rq.m
    cat matlab_command_rq.m 
    ${matlab_exec} -nojvm -nodisplay -nosplash < matlab_command_rq.m
    rm matlab_command_rq.m

答案中的原始代码是

    matlab_exec=matlab
    X="${1}(${2})"
    echo ${X} > matlab_command_${2}.m
    cat matlab_command_${2}.m
    ${matlab_exec} -nojvm -nodisplay -nosplash < matlab_command_${2}.m
    rm matlab_command_${2}.m

在解释中,他们提到 $1 是函数,$2 是输入。相应地,我用我的函数'localize'和输入(r,q)替换它

但我收到以下错误

    localize(r,q)
    ./matlab_batcher.sh: 5: ./matlab_batcher.sh: -nojvm: not found

回声似乎在起作用。但我真的不知道在那之后会发生什么。你能帮我告诉我用参数调用matlab函数的正确方法吗???

我使用以下语句调用它

   sh ./matlab_batcher.sh localize r q

【问题讨论】:

    标签: linux matlab command-line command-line-arguments


    【解决方案1】:

    你需要把你的b_exec改回matlab_exec,或者你需要改变

    ${matlab_exec} -nojvm ...
    

    ${b_exec} -nojvm ...
    

    无论哪种方式,您都需要使其保持一致。

    【讨论】:

    • 你能告诉我你的意思是说我应该让它保持一致吗?以及调用函数的方式,是不是正确的方式?
    • 我的意思是你不能命名你的变量 b_exec 然后引用 matlab_exec (这是未定义的)。至于你如何调用它,因为你将函数名和参数硬编码到你的脚本中,你可以做sh ./matlab_batcher.sh
    • 您仍然收到-nojvm: not found?这似乎不太可能。你应该仔细检查你的工作。如果做不到这一点,请准确发布您现在拥有的内容。
    • 这意味着matlab 不在您的搜索路径中。最简单的方法就是使用matlab 的完整路径,例如设置matlab_exec=/path/to/matlab(无论系统上的哪个位置)。如果您不知道,则必须向当地的支持人员咨询。
    • 那你应该回到原始版本的代码,像sh ./matlab_batcher.sh localize "r,q"这样调用。
    猜你喜欢
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2012-12-30
    • 2013-11-06
    • 1970-01-01
    • 2015-01-27
    相关资源
    最近更新 更多