GNU/Linux >> Linux の 問題 >  >> Linux

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

スクリプトを実行するために、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');"

Linux
  1. コマンドラインからリモートでLinuxワークスペースを構成する

  2. Linuxコマンドラインから電子メールの添付ファイルを送信する4つの方法

  3. LinuxコマンドラインからのI/Oレポート

  1. Linuxでユーザーがログインする前にコマンドを実行する方法は?

  2. コマンドラインからPerl/PHPスクリプトを実行する

  3. コマンドラインからのLinuxサーバーの移行

  1. Linuxのコマンドラインからトレントを検索

  2. Linuxでplink.exeからsudoコマンドを実行する[windows]

  3. コマンドラインからの Clonezilla