It’s that time of the year again. With Matlab 8.0 (R2012b) now available for download, I once again installed a new release. Today’s post will detail some of the post-installation steps I did for the new installation to work properly, for me at least. Nothing special compared to past releases, but worth listing anyway I guess. I won’t bother repeating the list that I published here exactly one year ago.
Removing extra files
Since my complaint last year, I see that some (not all) of the Japanese-language files have been removed from the installation. This is good, although some large Japanese files remain (e.g., the installation guide PDF and many help files) which a smart installer (or even better – the JNLP downloader) might know to ignore based on my computer’s locale.
In any case, what has been added to my dislike, are files in Chinese, specifically the helpsearch_zh_CN folder in %matlabroot%/help/ and %matlabroot%/help/matlab/, each weighing a hefty 14MB. I really hate giving Matlab the adjective of “bloatware”, but its releases keep getting larger and large (R2012b weighs over 800MB!) and I feel that a lot of it, like these Chinese files, could be avoided with only a little bit of extra care on the part of MathWorks. Not all computers have 100GB of free disk space, you know…
Modifying some Matlab m-files
I have several standard changes that I often make to Matlab files. These changes are naturally not propagated when installing a new Matlab release. I can understand this and I’m not complaining. I just need to go over the list of functions and re-modify them:
- profview and matlab-report-styles.css (both in %matlabroot%/toolbox/matlab/codetools/) – I’ll post a separate article about this next week, together with some additional undocumented profiling options that I did not cover in my previous article on this topic.
- uitree, uitab and other semi-documented functions (mostly in %matlabroot%/toolbox/matlab/uitools/) such as the useful hgfeval – add a % character at the beginning of line #3, in order to make the help section become visible during help or doc.
This is one step that I do not need to do when installing on a machine having a previous Matlab installation. The installer is smart enough to detect that installation and copy its preference files to the new installation. However, updating the default preferences is indeed necessary for a fresh install, and since I was asked about this I thought to include this here.
So here are the changes that I normally make to the default preferences:
- General – Confirmation Dialogs – uncheck several confirmations
- General – Java Heap Memory – increase to 256 or 512MB
- Keyboard – check the <Tab key narrows completion> option (most useful for the desktop – see related article)
- Fonts – Monospaced 10pt => Courier New 8pt (the Monospace font is often displayed incorrectly, as a proportional rather than fixed-width font. Using Courier solves this problem. 8pt gives me more real-estate and still looks good on my display)
- Colors – Programming Tools – check all the options except <Show lines between sections>
- Command Window – Text display: long g compact; uncheck <Show getting started msg>; scroll buffer: 5K=>25K (will MathWorks ever increase this hard-coded limit?!)
- Editor – Most recently used (MRU): 4=>12 (until recently Matlab only supported 9, hurray)
- Editor – Display – check all options (on some older releases the <Show lines between sections> was here and needed to be unchecked; this option is now in Colors – programming Tools); Show line at 75 => 120 columns
- Editor – Tab – check all options
- Editor – Language – Max column width: 75 => 120; Indent all functions (not just nested)
- Editor – Code Folding – check all options in the <Enable> column; check most options in the <Fold Initially> column
- Editor – Autosave – Append file name with asv => ~
- GUIDE – uncheck all options except <Show file extension in window title>
And in the Workspace panel, only show the Name, Value, Bytes and Class columns (right-click the column headers to select).
A few words about R2012b
The new R2012b release has received the version ID of 8.0. Despite my speculations in 2010 (here and here) that Matlab 8.0 will bring along the promise of the much-awaited HG2, it turns out that I was incorrect. The new release still does not incorporate HG2. We can see a gradual progression in the work by starting Matlab with the “-hgVersion 2” switch that I described there, but this has still not made it into the mainstream figure window. Hopefully we will get HG2 sometime next year.
R2012b does include a major facelift to the Desktop and Editor, using the new MS-Office-like toolstrip that I exposed here last year. Some people hate toolstrips, some love them, but whatever your personal preference is, Matlab does not have an option to switch back to the non-toolstripped appearance, so for good or worse we’re stuck with the new look. The new toolstrip is currently shown only in the Desktop and related tools, not in figure windows (perhaps in anticipation for HG2? I don’t know). Which reminds me that it’s really about time for me to write a detailed technical article explaining how to add a toolstrip to figure windows.
Another thing you’ll notice in the new release is a facelift to the documentation and the Matlab browser (tabs, finally!), along with a Quick Access Bar (QAB) and a Win7-like current-folder combo-box control.
One specific new features that readers of this blog (I, for one) will probably bless, is the ability to create a custom user Java static classpath and librarypath files, that will override and extend Matlab’s auto-generated classpath.txt and librarypath.txt files. The new custom files should be called javaclasspath.txt, javalibrarypath.txt and be placed in your prefdir or startup folder (the latter is useful for deployed applications). This finally puts an end to the need to update these files for each Matlab release, along with the ensuing compatibility problems that arose from incompatible set of Matlab JAR files. This solves a very painful operational issue for me and I’m sure that also for others.
Another Java-related improvement is the ability to get the underlying Java exception object in the catch part of a try-catch block. Not a biggie for me, but certainly a nice-to-have.
Sadly, if you’re looking for really important engine upgrades, then I haven’t found any that really caught my eye in the release notes. Maybe next year…
Definitely agree with the last sentence . Ok like the website of TMW , MATLAB has a new face ,a new look but what else?!!!
There is no major improvement for GUIde since many years !
I see more compatibility issue with the recent changes (since 12a) of the unique , intersect, setdiff … functions
Custom documentation has not been integrated in the new help viewer. One needs to be redirect to the old help browser to open custom documentation.
Thanks for this list. One thing I always do for a new release is copy/paste my customizations to TC.xml for tab completion (thanks for your previous blog post about that!).
Regarding the long-dreamed-of “Handle Graphics 2” (HG2) functionality that seems to be taking TMW so long to get where they want it: I’m still not getting whether the visible componentry of HG2 (what you can actually render with it) will be updated, or simply the programming implementation?
You’ve written extensively on your blog & in your book about how outdated the visual elements are that come out of MATLAB Guide. Definitely! In some respects they remind me of Windows 95! Clearly when we look around the web & see what other people have done in the last 10 years, it’s just very sad to see TMW lagging behind so badly.
Here’s one stark example: take a look at the GUI elements in any of the user-contributed Mathematica demos, such as Polar Area Sweep. Don’t the sliders & left-hand selection gallery look so much more modern?
What’s your take on the evolution of UI elements & style in MATLAB?
As often happens, many useful features available in the old menus have disappeared in the toolstrip. If you have a “favourite” menu item that has disappeared, its relatively painless to add to the toolstrip e.g. :