スクリプトを実行するために、Matlab を開くことができます (-nodisplay
を使用して GUI なしで実行することを防ぐことができます)。 と -nodesktop
flags)、run
を使用してスクリプトを実行します。 コマンドを実行し、最後に exit
を使用して matlab を閉じます .
これらすべてを端末から 1 つの命令で実行できます:
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
R2019a 以降、test.m スクリプトの推奨される方法は次のとおりです。
matlab -batch "test"
これにはいくつかの利点があり、主にすべての -no
が不要です。 flags と MATLAB は、test.m の場合、ゼロ以外のステータスで終了します。 (検索パス上にある必要があります) にエラーが含まれています。
ドキュメント ページ、matlab (Linux) から:
<ブロック引用>MATLAB スクリプト、ステートメント、または関数を非対話的に実行します。MATLAB:
- デスクトップなしで起動
- スプラッシュ画面を表示しない
- ステートメントを実行します
- 設定の変更を無効にします
- ツールボックスのキャッシュを無効にします
- テキストを
stdout
に記録します とstderr
- ダイアログ ボックスを表示しません
- script の場合、終了コード 0 で自動的に終了します 正常に実行されます。そうでない場合、MATLAB はゼロ以外の終了コードで終了します。
声明 二重引用符で囲まれた MATLAB コードです。 If ステートメント は MATLAB 関数またはスクリプトの名前です。ファイル拡張子を指定しないでください。必要なファイルは、MATLAB 検索パスまたはスタートアップ フォルダーになければなりません。
-batch
を使用 非対話型スクリプトまたはコマンド ラインワーク フローのオプション。 -r
でこのオプションを使用しないでください オプション。
MATLAB のセッションがバッチ モードで実行されているかどうかをテストするには、batchStartupOptionUsed
を呼び出します。 関数。
例:-batch "myscript"
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');"