Undocumented Matlab
  • SERVICES
    • Consulting
    • Development
    • Training
    • Gallery
    • Testimonials
  • PRODUCTS
    • IQML: IQFeed-Matlab connector
    • IB-Matlab: InteractiveBrokers-Matlab connector
    • EODML: EODHistoricalData-Matlab connector
    • Webinars
  • BOOKS
    • Secrets of MATLAB-Java Programming
    • Accelerating MATLAB Performance
    • MATLAB Succinctly
  • ARTICLES
  • ABOUT
    • Policies
  • CONTACT
  • SERVICES
    • Consulting
    • Development
    • Training
    • Gallery
    • Testimonials
  • PRODUCTS
    • IQML: IQFeed-Matlab connector
    • IB-Matlab: InteractiveBrokers-Matlab connector
    • EODML: EODHistoricalData-Matlab connector
    • Webinars
  • BOOKS
    • Secrets of MATLAB-Java Programming
    • Accelerating MATLAB Performance
    • MATLAB Succinctly
  • ARTICLES
  • ABOUT
    • Policies
  • CONTACT

2013 perspective & plans for 2014

January 8, 2014 One Comment

With 2013 behind us and a fresh 2014 ahead, it is time again for a short look at this website’s achievements so far, and plans for the future.
I started this blog nearly five years ago, thinking it would be nice to post about a few dozen undocumented features. I had no idea whether this material would be of any use to Matlab users, and I expected the website to become just another a niche blog. In fact, I was not sure that at a rate of one article per week I would have enough content for more than a year or two.
250 posts, 2000 reader comments, and 500K unique visitors later, it is obvious that I underestimated the impact that this blog would make. My pipeline of future articles continues to grow along with all other measurable quantities of website traffic.

Stats for nerds (and potential advertisers…)

Interest in this website still grows steadily, continuing the trend from the past years. To date, 514,400 unique readers have read at least one article here (two on average), in almost a million different visits, reaching over 8000 unique visits (plus ~2000 RSS and email subscribers) per week. These figures are about 60% up from last year, so the upward trend continues although at a slightly lower pace than previously. In the following graph, the traffic dips are due to the annual December holidays and the site-overhaul in 2011. The growth trend is quite evident:

Steady readership growth (click for details)
Steady readership growth (click for details)


How significant are the absolute numbers? I believe that my 2012 analysis remains valid, so please refer there.

2013 in review

In 2013, I published 47 articles, including:

  • several articles on undocumented aspects of MCOS – Matlab’s class object system (accessing private objects, object creation performance, specifying class property types, property access performance)
  • several performance-related articles (sprintfc internal function, memory allocation performance, save performance, fwrite performance)
  • several articles on 3rd-party plotting libraries (Waterloo, Waterloo #2, Plotly)
  • several articles on integrating other useful external libraries (JGit, JTattoo, Matclipse)
  • a few articles on undocumented aspects of interfacing to external software (undocumented MEX API, using Java 7 in R2013a and earlier, Matlab-latex interface)
  • a few articles on Matlab’s internal math processing engine (BLAS/LAPACK/FFTW, sparse data, numerical gotchas)
  • a couple of posts on customizing Matlab figures (toolbar/menubar, toolbar background color)
  • several posts on customizing Matlab GUI (displaying animated GIFs, solving GUI hangs, internal Matlab bugs and workarounds, rich-contents log panel, editbox customizations, editbox real-time data validation, editable combo-box, complex professional combo-boxes, listbox layout)
  • several posts on self-contained utilities that can significantly improve GUI appearance/functionality (uiinspect, propertiesGUI, treeTable)
  • several posts on undocumented Handle Graphics (HG) aspects (default values, input args interface, Behavior property/functionality, ishghandle‘s extra input arg, draggable data-tips, and a very detailed review of the upcoming HG2)
  • a few posts on undocumented aspects of the Matlab desktop (yet another command-window text color hack, Variables Editor scrolling)
  • a couple of other articles, on parsing mlint (Code Analyzer) output and function-definition meta-info.

As can be seen, quite a few posts deal with performance, which is one of my favorite topics, and the topic of my upcoming second book, MATLAB Performance Tuning, which I hope to publish this autumn. I originally planned to publish it in early 2014 but research has steadily tripled the book size, from the envisioned 250 pages to nearly 800 (the CRC webpage still reflects the lower page-count). There’s a ton of new material in there, and it took me time to process and write. Anyway, I expect to post more articles on this topic in 2014.

Guest bloggers

2013 continued the trend in previous years of hosting articles by guest bloggers:

  • Malcolm Lidierth wrote about the Waterloo graphics library beta and animation + web deployment.
  • Chris Parmer wrote on the Plotly graphics library‘s new Matlab interface.
  • Chris Albert wrote about Matclipse – the open-source Matlab plugin for Eclipse.
  • Mark Mikofski wrote about integrating Matlab to the open-source JGit source-control repository.
  • Yaroslav Don wrote on the Matlab-Latex interface.
  • Pavel Holoborodko wrote about some undocumented MEX API functions.
  • Oleg Komarov wrote on controlling scrolling in the Variables Editor.
  • Roderick (who wishes to remain anonymous) wrote about retrofitting Java 7 on R2013a and earlier.

I am very pleased at the growing list of guest bloggers. If you have any Matlab topic with an undocumented twist, I will be happy to post your contents here as well. Don’t be shy – email me (altmany at gmail) and I’ll help with the details.

Public events

In 2013 I was graciously invited by MathWorks and its country representatives to speak at 4 public events, of which I attended three. All events focused on my recent work on Matlab applications for finance and trading. I presented a real-time trading demo in two physical and one virtual Matlab conferences. Interested readers can see a recorded webinar of the presentation. Note that my participation in the MathWorks events does not constitute any official endorsement by MathWorks for my work. I would like to think that it at least acknowledges that I provide some benefit to the community by showing how Matlab can be used for real-life trading applications.

Plans for 2014

I plan to continue posting about undocumented aspects of Matlab. Specific plans include the much-overdue article on checkClass (this is a promise from last year that I failed to deliver, sorry…). I also hope to cross out additional items in my TODO list. Two mini-series that I hope to get around to, are about Matlab-database connectivity and Matlab’s new toolstrip/ribbon (again undelivered promises…).
Concurrently with the posts, I will continue to provide professional Matlab consulting and contract work for clients. If you have an interesting project that could use professional Matlab programming, please let me know.

Training

Finally, I plan to continue Matlab training courses/seminars. The upcoming event is in London in March 10-14. I plan two separate courses:

  • Advanced Matlab Programming – 2 days (March 10-11), including best practices, preparing professional reports and performance tuning. US$ 999 until Jan 27, 2014; US$ 1199 for later registrations.
  • Advanced Matlab Visualization & GUI – 3 days (March 12-14), including advanced visualization and GUI techniques. US$ 1499 until Jan 27, 2014; US$ 1799 for later registrations.

This is a unique opportunity to enhance your Matlab skills in a few days, at an affordable cost, by an established expert. This training is not provided anywhere else. If you have a specific topic that you would like me to discuss, then I would be happy to do it. In other words, I can customize the training to your specific needs, within the provided framework. Additional information on the London courses can be found here; general details on my training can be found here.
If you are interested in the London courses or a private dedicated course, please Email me (altmany at gmail dot com) for details.
Happy 2014 everybody!
– Yair Altman

Related posts:

  1. 2014 perspective & plans for 2015 – 2014 has seen a continued steady growth in website content and readership. This post takes an overview of past achievements and future plans. ...
  2. 2012 perspective & plans for 2013 – 2012 has seen a continued steady growth in website content and readership. This post takes an overview of past achievements and future plans. ...
  3. 2011 perspective & plans for 2012 – 2011 has seen a continued steady growth in readership of this website. This post takes an overview of past achievements and future plans. ...
  4. 2010 perspective & plans for 2011 – 2009 and 2010 have seen steady growth in readership of this website. This post takes an overview of past achievements and future plans....
  5. New York City visit, 21-24 May 2013 – I will be visiting New York 21-24 May 2013 to speak at the Matlab Computational Finance Conference. ...
  6. USA visit, 22-31 July 2014 – I will be visiting some US cities on July 2014. ...
Print Print
« Previous
Next »
One Response
  1. Advanced MATLAB Training (UK) - Matlab Recipes January 14, 2014 at 04:01 Reply

    […] new post from Yair Altman at Undocumented Matlab announces he is coming to London to run some of his training courses. The upcoming event is in […]

Leave a Reply
HTML tags such as <b> or <i> are accepted.
Wrap code fragments inside <pre lang="matlab"> tags, like this:
<pre lang="matlab">
a = magic(3);
disp(sum(a))
</pre>
I reserve the right to edit/delete comments (read the site policies).
Not all comments will be answered. You can always email me (altmany at gmail) for private consulting.

Click here to cancel reply.

Useful links
  •  Email Yair Altman
  •  Subscribe to new posts (email)
  •  Subscribe to new posts (feed)
  •  Subscribe to new posts (reader)
  •  Subscribe to comments (feed)
 
Accelerating MATLAB Performance book
Recent Posts

Speeding-up builtin Matlab functions – part 3

Improving graphics interactivity

Interesting Matlab puzzle – analysis

Interesting Matlab puzzle

Undocumented plot marker types

Matlab toolstrip – part 9 (popup figures)

Matlab toolstrip – part 8 (galleries)

Matlab toolstrip – part 7 (selection controls)

Matlab toolstrip – part 6 (complex controls)

Matlab toolstrip – part 5 (icons)

Matlab toolstrip – part 4 (control customization)

Reverting axes controls in figure toolbar

Matlab toolstrip – part 3 (basic customization)

Matlab toolstrip – part 2 (ToolGroup App)

Matlab toolstrip – part 1

Categories
  • Desktop (45)
  • Figure window (59)
  • Guest bloggers (65)
  • GUI (165)
  • Handle graphics (84)
  • Hidden property (42)
  • Icons (15)
  • Java (174)
  • Listeners (22)
  • Memory (16)
  • Mex (13)
  • Presumed future risk (394)
    • High risk of breaking in future versions (100)
    • Low risk of breaking in future versions (160)
    • Medium risk of breaking in future versions (136)
  • Public presentation (6)
  • Semi-documented feature (10)
  • Semi-documented function (35)
  • Stock Matlab function (140)
  • Toolbox (10)
  • UI controls (52)
  • Uncategorized (13)
  • Undocumented feature (217)
  • Undocumented function (37)
Tags
ActiveX (6) AppDesigner (9) Callbacks (31) Compiler (10) Desktop (38) Donn Shull (10) Editor (8) Figure (19) FindJObj (27) GUI (141) GUIDE (8) Handle graphics (78) HG2 (34) Hidden property (51) HTML (26) Icons (9) Internal component (39) Java (178) JavaFrame (20) JIDE (19) JMI (8) Listener (17) Malcolm Lidierth (8) MCOS (11) Memory (13) Menubar (9) Mex (14) Optical illusion (11) Performance (78) Profiler (9) Pure Matlab (187) schema (7) schema.class (8) schema.prop (18) Semi-documented feature (6) Semi-documented function (33) Toolbar (14) Toolstrip (13) uicontrol (37) uifigure (8) UIInspect (12) uitools (20) Undocumented feature (187) Undocumented function (37) Undocumented property (20)
Recent Comments
  • JCFL (1 day 2 hours ago): I was trying the above trick to change the transparency of contour lines and wondering why not all the lines have changed — then I found your post. Thanks and your post saved me.
  • Patrick Fitzgerald (3 days 6 hours ago): Just a heads up to anyone else digging around for help related to this: if you assign BackrgoundColor to a pushbutton-style uicontrol, it seems to prevent you from...
  • Vasiliy (19 days 1 hour ago): Hi Yair, i’m trying to use the MonthChooserPanel class. com.mathworks.mwswing.MJUtilit ies.initJIDE; handles.jPanel = com.jidesoft.combobox.MonthCho oserPanel;...
  • DM (19 days 1 hour ago): Hi Yair, I’m trying to use the MonthChooserPanel class. com.mathworks.mwswing.MJUtilit ies.initJIDE; handles.jPanel = com.jidesoft.combobox.MonthCho oserPanel; [handles.hPanel,...
  • Yair Altman (22 days 18 hours ago): @Alex – thanks, but keep in mind that new functions will only work on the recent Matlab releases. If your code needs to work on older Matlab releases, you could revert to...
  • Alex Churchill (22 days 18 hours ago): I was looking up how to do this exact task today. I was about to hold my nose and use the internal controllib function, when I happened to chance across a slightly newer...
  • Sebastian Hölz (29 days 0 hours ago): I have not investigated this in detail, but I think one way to go in new versions of Matlab (>2019b) might be to use listeners to suitable figure properties, e.g. fig =...
  • Prathep (29 days 3 hours ago): Hi Yair, Thanks for your introduction on Matlab Toostrip. Is there any way to add Matlab toolstrip for uifigures as you have done already for figure?
  • Josh (35 days 10 hours ago): Dear Yair, Small typo; you wrote >>Move lines up or down – CTRL + ALT + UP or DOWN allows you to move selected lines up or down but it’s actually ALT+SHIFT then UP/DOWN...
  • Yair Altman (42 days 4 hours ago): You can try to increase the Java heap memory size in the Matlab preferences (General => Java Heap Memory). Any changes to the settings will only take effect after restarting...
  • Thomas (42 days 6 hours ago): Hello, thanks for sharing! I currently receive the following memory error message when using savezip with a big object (Matlab R2020b, Windows 10). Error using...
  • Yair Altman (45 days 13 hours ago): Yerlan – either use menuItem1.setEnabled(0) or set(menuItem1,'Enabled',0)
  • Manzn (45 days 16 hours ago): Thank you man! you saved me, when there was no more light 😀
  • Yerlan (46 days 21 hours ago): Hello Mr. Altman, how can I disable menu items in the context menu? E.g. when I am trying to do this: menuItems = jmenu.getSubElements; menuItem1 = menuItems(1);...
  • Yair Altman (47 days 13 hours ago): Thanks for the note Eric – you forgot the crucial call to jTable.setLabelTable(labelTabl e) – I added it into your code snippet above.
Contact us
Undocumented Matlab © 2009 - Yair Altman
Scroll to top