在脚本中,如何知道Matlab是在Interactive(通过emacs)还是在批处理中运行?

时间:2013-05-14 15:59:15

标签: matlab emacs

在我的Matlab脚本中,我想区分脚本在Interactive trough emacs matlab模式下运行或批量运行的情况。

通过批量运行,我的意思是按照Matlab网站http://www.mathworks.com/support/solutions/en/data/1-15HNG的说明运行。

例如,通过一个变量进行思考:

if (SCRIPT_RUNNING_IN_BATCH==1)
  do_this;
end

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

我使用以下内容:

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

如前所述,这是here

的副本

答案 1 :(得分:1)

您可以在没有交互模式的情况下运行MATLAB时传递参数。例如,您可以通过以下方式将15传递给名为srcName的函数:

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

虽然这对于剧本不起作用。

我是ViM用户,slimux工作得很好。我确定你可以设置你喜欢的emacs来与交互式MATLAB进行类似的交互,而不是每次都调用MATLAB。