web-dev-qa-db-ja.com

コマンドラインからのMATLAB実行スクリプト

linuxコマンドラインからmatlabスクリプトを実行する方法はありますか?たとえば、次の簡単なスクリプト「test.m」があります。

x = [1,2,3];
y = [2;3;4];

prod = x*y
disp(prod)

したがって、私が欲しいのは、MATLAB GUIまたはmatlabコマンドラインを開かずにLinuxコマンドラインからそのスクリプトを実行できるようにすることです。つまり、私はそのようなものを期待しています:

~$ matlab test.m

linux製品のコマンドラインで製品の結果が表示されることを期待しています。

pythonでそれを行うことができることを知っています。例えば、

~$ python test.py

しかし、同じことがMATLABで達成できるかどうか疑問に思っていました。

11
user3578925

スクリプトを実行するには、Matlabを開き(-nodisplayフラグと-nodesktopフラグを使用してGUIなしで実行しないようにできます)、次にrunコマンドを使用してスクリプトを実行し、最後にexitを使用してmatlabを閉じます。

ターミナルからこれらすべてを単一の命令で行うことができます:

matlab -nodisplay -nosplash -nodesktop -r "run('path/to/your/script.m');exit;"

ただし、Matlabはスクリプトを実行する前にウェルカムメッセージをコンソールに出力します。ウェルカムメッセージを削除するには、tail -n +11を使用して、最初の11行(Matlabのバージョンによっては10行)をスキップします。

したがって、最終的な指示は次のようになります。

matlab -nodisplay -nosplash -nodesktop -r "run('path/to/your/script.m');exit;" | tail -n +11
19
Sembei Norimaki

runmという基本的なシェルスクリプトを作成し、パスに追加しました。

$ runm mymatlab.m

脚本:

# simple script to run matlab script
if [ $# -eq 0 ]
  then
    echo "please pass m script"
fi

matlab -nodisplay -nosplash -nodesktop -r "run('$1');"
1
Ab Bennett