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

2012 perspective & plans for 2013

January 2, 2013 One Comment

With 2012 behind us and a fresh 2013 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 four 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 be a niche blog at best. 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.
200 posts, 2000 reader comments, and 300K unique visitors later, an admission should now be made that I hugely underestimated the impact that this blog would make. In fact, my pipeline of future articles is now longer than ever (a full year long), and the readership growth appears to quickly approach the physical limit of total Matlab community size.

2012 in review

In 2012, I published 50 articles, including:

  • a few posts about integrating 3rd-party Java libraries in Matlab (Waterloo, Groovy, JFreeChart, Java Collections)
  • a mini-series about customizations to figure window menus (part1, part2, part3)
  • a mini-series about customizations to the built-in Matlab profiler
  • a few articles about customizing the Matlab desktop (editor, mlint failures, trapping warnings, Command Window bold text)
  • many articles about Matlab’s built-in Java and its usages
  • several articles on Matlab’s internal memory (leaks #1, leaks #2, profiling, in-place editing, internal format, preallocation, resizing, optimizations)
  • a few articles on compiled (deployed Matlab applications (speed-up, splash window, privacy, disabling menu-items)
  • quite a few articles about miscellaneous undocumented Matlab topics:
    • GUI (using spinners, uicontrol images, uitable headers, ScreenCapture utility)
    • graphics (Waterloo, JFreeChart, axes tick labels, scatter plot jitter, pinning annotations)
    • I/O (xlsread, xlswrite, urlread)
    • external interfaces (actxserver), etc.
  • last but not least, a few posts dealing with performance, which is one of my favorite topics. In fact you will be reading quite a bit more on this in 2013. This is perhaps the place to announce that I am currently writing my second book on the subject of Matlab Performance Tuning. I hope and expect it to be published later this year, and I will of course inform when it is finally published.

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

  • Malcolm Lidierth wrote about integrating Waterloo and Groovy. Malcolm’s Waterloo mini-series quickly became a super-star in terms of readership, facebook likes, and user comments.
  • Donn Shull wrote about extending Java classes using UDD. Donn’s series of UDD articles is one of the website’s most highly searched-for terms.
  • Alexander Mering wrote about disabling menu items in deployed applications.
  • Jim Hokanson wrote about extending the built-in urlread function.
  • Peter Li wrote about the internals of Matlab’s memory and mex in-place editing.

Stats for nerds (and potential advertisers…)

Hopefully there was enough material and diversity in there to satisfy different audiences. Judging by the traffic on the site, this appears to be the case indeed. Interest in this website still grows steadily, continuing the trend from the past years. To date, 305,500 unique readers have read at least one article here (two on average), in over 560,000 different visits, reaching a new peak of over 7000 unique visits (plus over a thousand subscribers) per week just before the December holidays. These figures are nearly double those from last year. RSS and email subscription has also continued their steady growth pace. 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?
Well, Matlab reportedly has “more than 1 million” users worldwide. So 305K readers represents about 30% of the total, as an upper bound. Granted, some of those visitors are innocent googlers who happened to stumble across the website and are not Matlab users. But I think we can safely assume that at least half of the visitors, who have visited the website multiple times, are actual Matlab users. Whichever way you look at it, this represents a significant portion of the total Matlab community. Somehow, despite having no investment in marketing, and (naturally) no active support from MathWorks, this website has reached wide-spread community attention. I can’t fully express how happy I am about this. 🙂 I take it as a resounding community approval, so I intend to continue expanding the site with additional interesting content.
In the past 2 annual perspectives (2011, 2010) I have shown the readership breakup by country and by city. The relative trends that were presented then are still valid. So this time I will display the breakup of the top reader languages, as reported by their browsers. It seems that over two-thirds of you readers speak English (or at least, your browsers do), with German, French and Spanish coming far behind:
Steady readership growth (click for details)
Steady readership growth (click for details)

Plans for 2013

In 2013 I plan to continue posting about undocumented aspects of Matlab. Specific plans include the much-overdue articles on uiinspect and its close relative 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.
There will also be more articles by guest bloggers. I am extremely pleased at the growing list of guest bloggers. If you have an idea for an article, please email me (altmany at gmail).
Finally, last year I started presenting Matlab training courses/seminars, a niche that I hope to expand in 2013. I expect that you will hear more about public events, and I will also continue custom training.
Happy 2013 everybody!
– Yair Altman

Related posts:

  1. 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. ...
  2. 2013 perspective & plans for 2014 – 2013 has seen a continued steady growth in website content and readership. This post takes an overview of past achievements and future plans. ...
  3. 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....
  4. 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. ...
  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. Types of undocumented Matlab aspects – This article lists the different types of undocumented/unsupported/hidden aspects in Matlab...
Print Print
« Previous
Next »
One Response
  1. Jerome Lecoq January 3, 2013 at 13:12 Reply

    Looking forward to read your new book. I am sure it is going to be a hit! Matlab code optimization is a major subject in all fields.

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
  • Josh (12 hours 18 minutes 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 (7 days 6 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 (7 days 8 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 (10 days 15 hours ago): Yerlan – either use menuItem1.setEnabled(0) or set(menuItem1,'Enabled',0)
  • Manzn (10 days 18 hours ago): Thank you man! you saved me, when there was no more light 😀
  • Yerlan (11 days 23 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 (12 days 15 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.
  • Erik (14 days 2 hours ago): Thank you for this — I don’t know if this has been mentioned anywhere else before, but it could be useful to mention how to add custom labels to a jslider. I did the...
  • turhv (26 days 21 hours ago): very nice! work perfectly to me in MATLAB 2019a. thanks!!!
  • Jianfei (60 days 0 hours ago): I have tried the MathWorks CheckBoxList in Matlab 2015b. For whatever the reason, I can’t change the font properties. I can change the font color, but changing font properties...
  • Donato Coppola (65 days 20 hours ago): Hi Yair, I have a problem with the double format. When I run the treeTable function, the numbers in double format cells are displayed with comma as decimal separator. How can...
  • Kim (71 days 10 hours ago): Yair, the following didn’t work for me either: jh.setBorderPainted(false); Regards, Kim
  • Adil (73 days 11 hours ago): Thank you for the blog, it was useful for me. I have a file named App_project.mlapp.zip and when I extract it through Winzip it gives all the files exactly as you described above. I...
  • Mr Ashley Trowell (75 days 21 hours ago): Thank you so much for this analysis. Also, I find it somewhat horrifying. The take away seems to be to use && / || and NOT and / or. Thanks a bunch! ~Ashley
  • Matt (80 days 23 hours ago): Late reply I know, but you can call custom shortcuts with alt-#. Hold down Alt to see what number is assigned to the shortcuts you’ve created. Now if there was a way to create a...
Contact us
Undocumented Matlab © 2009 - Yair Altman
Scroll to top