With the release of Octave 3 many of the remaining incompatibilities between Octave and MATLAB have been eliminated and the graphics much improved. Plotting and image display is not as fast or as polished as it is under MATLAB but you can do pretty well everything you want to. Most of your MATLAB code will run under Octave with no modifications required.
You will also find that Octave has a number of features that are improvements on MATLAB. For example you can create stand-alone executable scripts, you can write sin(x)(1:10); rather than being forced to write y = sin(x); y = y([1:10]); and you can specify default argument values for functions, to name a few.
The installation of Octave is straightforward and the installation of packages (Octave's equivalent of MATLAB toolboxes) has been streamlined.
I suggest you check the following links
Please do not mail me about any Octave installation problems, I will not know how to help you. You should refer to the appropriate FAQ pages.
> imwrite(filename, image) % Octave > imwrite(image, filename) % MATLABHowever the Octave imwrite function now detects if the arguments are in 'MATLAB order' and swaps them for you so you do not need to worry about this.
Octave = exist('OCTAVE_VERSION');
While MATLAB allows one to pass string arguments to functions without enclosing quotes and brackets, for example
warning off axis equalthis is not (always) allowed under Octave. However, by writing code in the proper functional form such as
warning('off'); axis('equal')compatibility under both MATLAB and Octave can be maintained. With Octave 3 this problem is mostly eliminated.