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.

Was it helpful?

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top