忽略Octave中的某些行(但保留它们用于Matlab)

时间:2012-12-20 21:02:47

标签: matlab octave environment getenv

  

可能重复:
  How do I detect if I’m running MATLAB or Octave?

我的代码是使用MATLAB设计的,我仍然使用它。但是,如果我尝试使用Octave运行它的某些部分,我会收到错误。例如,MATLAB代码使用pause on,而Octave则不然。

有没有办法检查哪个编程环境正在使用代码?例如,

if  invoking_env == 'Matlab'
    % do this
else 
    % ok, so do this
end

我可以使用getenv('COMPUTERNAME'),但在这种情况下,计算机名称是相同的!感谢。

2 个答案:

答案 0 :(得分:6)

MATLABOctave都有版本功能。它们返回不同的值,MATLAB的版本有一些参数,在Octave中不存在。希望有所帮助。

答案 1 :(得分:0)

我认为最好的方法是使用一个子函数来检查它。以下代码段可能是需要系统最小值的代码段。使用持久变量,可以重复调用它,而不会造成严重的性能损失。

function r = isoctave ()
  persistent x;
  if (isempty (x))
    x = exist ('OCTAVE_VERSION', 'builtin');
  end
  r = x;
end

然后您可以在条件块中轻松使用它。请参阅Octave wiki上的that entry