2012-04-05 11 views
6

私はMathWorks社のMATLABファイルmatlab_param.m文字列引数をbashスクリプトからmatlabファイルに渡す最も近い方法は何ですか?

function matlab_param(param1, param2) 

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

を持っていると私は私がこのbashscirptを実行したい

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

ように見えるbashスクリプトのbash_param.shを持ちたい

./bash_param.sh hello world 

と印刷されます

hello 
world 
param1 : hello 
param2 : world 

私は何時間もグーグルでこれについて正確な解決策を見つけることができませんでした。私がこれまでに得た最も近いものは、すべてのパラメータをハードコードする必要がある

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

です。

答えて

5

あなたは試すました:

#!/bin/bash 
echo $1 
echo $2 
matlab -nodesktop -nosplash -nodisplay -r "try, test_param('$1','$2'); end; quit" 
+0

申し訳ありませんが、私はそれをはっきり説明しませんでした。今私は説明を追加します。あなたが提案した方法を試しても、$ 1と$ 2は印刷されません。 –

+0

Ok、私は編集しました。 – Oli

2

を使用すると、MATLAB関数に引数を渡すことができるようにしたい場合は、私は簡単なシェルスクリプトを作成することをお勧めしたい:

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

そして、あなたが実行することができますunix:

$ sh test_param.sh hello world 

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

関連する問題