matlabとかRをコマンドラインから使っちゃう

今日研究室の友人に、

Matlabのコマンドとかをコマンドラインから実行できない?」

と聞かれて、なんか数ヶ月前に自分も同じような悩みを抱えてた気がして自分のメモをあさったらあったので一応メモ。

Matlabは研究室にあるPCにしか入っていないのだけれど今つないでみたら十字キーとエンターしか効かなかったので実際には試してません。

明日以降に確認してからまた書きなおします。

Matlabの場合

$ matlab -r filename.m

ただし、filename.mの結果をファイルに出力すべし。

さらに、Matlabでの処理が終わった後にterminalに戻ってこれるように、最後にquit()を忘れないでね。

Rの場合

$ R --filename=filename.r

出力をファイルにするのは同様。

最後はq()

これで、シェルから

$ matlab -r filename.m && R --filename=filename.r

みたいなことができるし、Pythonとかその辺の言語から

os.system("matlab -r filename.m")

的に外部コマンドで呼べるはず。

Matlabとかの標準出力とかをどうにかしてパイプ処理的に扱えるようにできるのかもだけどその辺はまた明日以降に。

僕は解析にMatlabもRも使ってるので、Matlabで処理したデータをRのパッケージを使ってさらに解析する、みたいなことをしたい時Matlabでの解析結果を一時ファイルに書き出してそれをRから読みだしてさらにいじくるみたいな使い方をしてたと思う。

Matlab実行時に--nodesktopとかつけるとさらにハッピーかも。