4

可能重复:
如何检测我运行的是 MATLAB 还是 Octave?

我的代码是使用 MATLAB 设计的,我仍然使用它。但是,如果我尝试使用 Octave 运行其中的某些部分,则会出现错误。例如,MATLAB 代码使用pause onOctave 不使用的代码。

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

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

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

4

2 回答 2

6

MATLABOctave都有版本函数。它们返回不同的值,并且 MATLAB 的版本有一些参数,这些参数在 Octave 中是不存在的。希望有帮助。

于 2012-12-20T21:12:46.837 回答
0

我认为最好的方法是有一个检查这个的子函数。以下代码段可能是系统要求最低的代码段。并且使用持久变量可以重复调用它而不会严重影响性能。

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

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

于 2012-12-21T01:06:59.877 回答