Question

Possible Duplicate:
How do I detect if I’m running MATLAB or Octave?

My code was designed using MATLAB and I still use it. However, if I try to run some parts of it using Octave, I get errors. For example, MATLAB code uses pause on which Octave doesn't.

Is there a way to check which programming environment is using the code? For example,

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

I can use getenv('COMPUTERNAME') but in this case the computer name is the same! Thanks.

Était-ce utile?

La solution

There is version function both in MATLAB and Octave. They return different values and MATLAB's version have some arguments, that are absent in Octave. Hope that helps.

Autres conseils

I think the best method is to have a sub function that checks this. The following snippet is probably the one that requires the minimum from the system. And with the persistent variable it can be called repeatedly without a heavy performance hit.

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

You can then use it easily in condition blocks. See that entry on the Octave wiki.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top