Monday, November 13, 2006

Compatibility problems between old (2.1.something) and new (2.9.something) versions of Octave - there are a lot of them. Apparently many of them are for "compatibilty" with Matlab, while sacrificing (fairly draconianly, in some cases) backward compatiblity with Octave.

  1. The old method of setting the path where Octave looks for other function files has changed from setting a LOADPATH environment variable in .octaverc to something like this:
    addpath (genpath ("~/Library/Octave"));
  2. Aquaterm, the way to get Octave to plot in OS X with Gnuplot but without X11, is displaying some kind of wonky behavior in its 1.0.2 incarnation. This may be entirely Aquaterm's fault - the old version (0.3?) was also wonky and required a "close all" command in Octave to get old plot windows killed. I'm still working on this, but excising the "close all" commands at least allows a function to plot to the same windows when called twice.
  3. At some point back in 2004, Octave switched from defaulting to column vectors to defaulting to row vectors because that's what Matlab does. If you routinely use the construction
    for i=1:n, x(i)= whatever ; end;,
    this is a serious monkey wrench heading your way.

    The simplest solution that I have found so far is to go through the code and replace
    x(i)= constructions with x(i,:) constructions. This will ensure backward compatibility of the script.

There are some nice features in this new version of Octave, including allowing matrices of arbitrary dimensionality.

No comments: