6

我有 matlab 文件 matlab_param.m

function matlab_param(param1, param2)

disp(sprintf('param1 : %s', param1));
disp(sprintf('param2 : %s', param2));

我想要 bash 脚本 bash_param.sh 看起来像

#!/bin/bash
echo $1
echo $2
./matlab_param.m $1 $2

我想运行这个 bashscirpt

./bash_param.sh hello world

它会打印

hello
world
param1 : hello
param2 : world

我用谷歌搜索了几个小时,找不到任何确切的解决方案。到目前为止我得到的最接近的是

matlab -nodesktop -nosplash -nodisplay -r "try, run ('./test_param.m'); end; quit"

我需要对所有参数进行硬编码。

4

2 回答 2

5

你试过了吗:

#!/bin/bash
echo $1
echo $2
matlab -nodesktop -nosplash -nodisplay -r "try, test_param('$1','$2'); end; quit"
于 2012-04-05T13:59:04.637 回答
2

如果您希望能够将参数传递给 matlab 函数,我建议您创建一个简单的 shell 脚本:

matlab -nodisplay -r "try, test_param('$1','$2'); end; exit"

然后你可以在unix中运行:

$ sh test_param.sh hello world

不确定如何避免 MATLAB 标头输出以及是否将其传递给管道。

于 2012-04-05T14:24:01.553 回答