9

具体的には、次のファイルにある次の非常に単純なPythonスクリプトについて考えてみますadd_em

#!/usr/bin/env python
# script name: add_em

from sys import argv

x = int(argv[1])
y = int(argv[2])
x_plus_y = x + y
print '%d' % x_plus_y

これで、次のように、Unixコマンドラインからこのスクリプトを実行して引数を渡すことができます。

% python add_em 3 8
11

pythonスクリプトを実行可能にすると、コマンドラインで言及する必要さえありません。

% chmod +x add_em
% add_em 41 -29
12

上記のスクリプトとまったく同じように実行されるように、MATLABスクリプトを作成(および実行)する方法を教えてもらえますか?特に、Unixコマンドライン(たとえば、MATLAB GUIの「コマンドライン」とは対照的に)から引数を読み取り、それらの数値の合計を標準出力に出力できる必要があります。

注:このスクリプトは「スタンドアロン」である必要はありません。IOWでは、MATLABがローカルにインストールされていると想定できmatlab、コマンドラインで言及することもできます(上記の最初の形式と同様に、コマンドラインでpythonインタープリターが明示的に呼び出されます)。

ありがとう!

PS:言うまでもなく、このスクリプトは「堅牢」のアンチテーゼですが、私の目的は、簡単に伝えられる例を作成することでした。

4

1 に答える 1

10

内部でやりたいことをMATLAB関数で行うことができますadd_em.m

function add_em(x, y)
x_plus_y = x + y;
disp(x_plus_y);
exit;

-r次に、スイッチを使用してUnixコマンドラインから呼び出します。例:

matlab -nodesktop -nojvm -nosplash -r "add_em(3, 8)" 

オプションは-、デスクトップ、Java、およびスプラッシュを抑制するため、スクリプト/関数は追加のオーバーヘッドなしで実行されます。

さらに、出力をログファイルにリダイレクトする (すべての計算の場合) か、端末に何かを出力するために出力をテーリングすることで、MATLAB のウェルカム/著作権メッセージを抑制することができます。

matlab -nosplash -nodesktop -nojvm -r "add_em(3, 8)" | tail -n 3

更新:関連情報を含むこの投稿/回答を見つけました: Matlabの開始メッセージを抑制します

于 2012-08-31T23:26:37.043 に答える