Question: I'm now learning a bit of MATLAB and I have two versions of it. Version 4.2c, that I use on my emulated Windows 3.11 and the lastest one, that I use on my Windows Vista.

Here is a screenshot of it:  

[MATLAB 4.2c On My Windows 3.11 http://img9.imageshack.us/img9/4042/matlabv4.png](http://img9.imageshack.us/img9/4042/matlabv4.png)

Then I want to know:

* What are the main differences?
* Are there are any differences in the language itself?
* Will new libraries work?

Answer: 
**EDIT:** Now that I see the screenshot, I realize you really *are* referring to MATLAB Version 4.2c (R7). I thought perhaps you were mistakenly referring to the MATLAB *Compiler* instead, since I didn't think anyone would still be using [a version that's over 15 years old](http://en.wikipedia.org/wiki/MATLAB#Release_history)! The oldest version I've used was when I first started learning MATLAB in 1996 on Version 5.0 (R8)!

The basic matrix and vector operations probably haven't changed much since Version 4.2c, although there are some newer functions to manipulate matrix data in different ways, like [ACCUMARRAY](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/accumarray.html), [BSXFUN](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/bsxfun.html), and [ARRAYFUN](http://www.mathworks.com/access/helpdesk/help/techdoc/ref/arrayfun.html) to name a few. Virtually everything else has probably changed in some subtle or not-so-subtle way: [the MATLAB Desktop and Editor](http://blogs.mathworks.com/desktop/2009/12/21/r2009-in-review/), [graphics and plotting tools](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/bqrw9tj.html), [creating graphical user interfaces](http://www.mathworks.com/access/helpdesk/help/techdoc/creating_guis/bqz79mu.html), etc.. You can also do object-oriented programming now using [MATLAB classes](http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_oop/brh2rgw.html).

Anyhow, for all MATLAB releases starting from the newest Version 7.9 (R2009b) and going all the way back to Version 7 (R14, 2004) you can find the release notes on [The MathWorks website](http://www.mathworks.com/access/helpdesk/help/techdoc/rn/rn_intro.html). These release notes highlight the new features and bug fixes added to each MATLAB version since the previous release. For example, in order to see the difference between Versions 7.6 and 7.9, you'd have to look through the release notes from 7.7, 7.8, and 7.9. If you *really* need release notes going farther back in time, you will probably have to [contact the MathWorks directly](http://www.mathworks.com/company/aboutus/contact_us/index.html).

*P.S. I may actually still have my old notes from my first MATLAB course, which I'm tempted to dig out of storage and take a look at just to see what may have changed since then. ;)*
There are a huge number of differences since that time. New variable types (logical, sparse, cell arrays, uint(N), single, etc.), objects, anonymous and nested functions, gui tools, toolbox changes galore.

Having said that, I have code written in 1988 (20+ years) that still runs with essentially no change. (Maybe version 3.5 or so?) And I just tripped recently over a piece of code from that era that is still actively being used.

The MathWorks does make great efforts to continue backwards compatibility for all code. Only under a great deal of discussion do they break that rule.