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 関数に渡せるようにしたい場合は、単純なシェル スクリプトを作成することをお勧めします。

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

その後、UNIX で実行できます。

$ sh test_param.sh hello world

MATLABヘッダー出力を回避する方法と、パイプに渡されるかどうかはわかりません。

于 2012-04-05T14:24:01.553 に答える