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で達成できるかどうか疑問に思っていました。
スクリプトを実行するには、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
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');"