1

私のMatlabスクリプトでは、スクリプトがインタラクティブトラフemacs matlabモードまたはバッチで実行される場合を区別したいと思います。

バッチで実行するとは、Matlab Web サイトhttp://www.mathworks.com/support/solutions/en/data/1-15HNGで説明されているように実行することを意味します。

たとえば、次のように考えるための変数をトラフします。

if (SCRIPT_RUNNING_IN_BATCH==1)
  do_this;
end

これを行う方法はありますか?

4

2 に答える 2

1

私は以下を使用します:

function retval = isCommandWindowOpen()
    jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance;
    retval = ~isempty(jDesktop.getClient('Command Window'));
end

前述のとおり、これはここからのコピーです

于 2013-05-14T16:22:29.860 に答える
1

インタラクション モードを使用せずに MATLAB を実行している場合は、引数を渡すことができます。たとえば、次のように名前を付けた関数に 15 を渡すことができますsrcName

matlab -nosplash -nodesktop -timing -r srcName(15)

ただし、これはスクリプトでは機能しません。

私は ViM ユーザーで、slimux は完璧に動作します。毎回 MATLAB を呼び出すのではなく、インタラクティブな MATLAB と同様の対話を行うように派手な emacs をセットアップできると確信しています。

于 2013-05-14T17:24:57.517 に答える