File Exchange Pick of the Week

Tell us what you want to read about! 9

Posted by Jiro Doke,

Today, I'd like to stray from the usual format of the Pick of the Week post. This blog has been around for almost 9 years. The oldest post I found in the archives was this post back in 2004 by Doug.

The format of the posts has been mostly consistent, which is one of us selecting an entry from the File Exchange, explaining what's cool about it, and showing how it works. Around the time Brett and I (and Bob in the beginning) took over the blog from Doug and Scott, Doug started creating some videos for his posts, and that led to his new blog Doug's MATLAB Video Tutorials. Since then, Bob moved on to bigger and better things, and a number of guest posters have joined in the rotation.

Brett has created summaries of the past Pick of the Week posts (check out the links on the right), to help remind our readers of the great entries we've highlighted in the past. Brett's post asking you guys to nominate File Exchange entries was a big hit. It was great to see so many of you finding the File Exchange valuable. We also had a couple of programming challenges, this and this.

While Brett, I, and the rest of the guest bloggers love writing about our favorite entries, I do want to make this blog an interesting and stimulating read for our readers. We will continue writing the usual posts, but from time to time, we like to change it up a bit. Let us know what kind of posts you want to see. The only requirement is that it has to have something to do with the File Exchange. You can even tell us about a particular post from the past you liked and what you liked about it.

Finally, everyone loves free stuff, so the first 5 legitimate comments, i.e. suggestions for topics or improvements, will get a MathWorks swag sent their way!

Thanks, everyone, for following our blog!


Get the MATLAB code

Published with MATLAB® R2012b

9 CommentsOldest to Newest

Some topics are very popular for File Exchange submissions. Arrows and waitbars come to mind. I know that you sometimes have a blog comparing submissions, and I would like to see more, especially mentioning strengths and weaknesses. For extra credit, you could also discuss the latest “official” function and whether it makes some of the submissions obsolete.

How about some advanced topics?

1) Vectorization for performance. e.g. How can you access parameters of data either not being passed (e.g. cellfun() callback) directly to the function, or how can you pass additional parameters in when needed? OOP?

2) Asynchronous communications with external applications (sockets, IPC, shared mem, com, etc.)? Can it be accomplished for event driven asynchronous processing?

4) Using Matlab automation server mode (e.g. managing passing data efficiently). What can be done with it, and what can’t.

5) Managing Dynamic GUI’s (i.e. without ‘static’ Guide)

6) Creating interactive plots via various controls and callbacks.

7) Customizing ‘context sensitive’ application hotkeys?

8) Any way to interface with the plot browser window controls? e.g. set a callback to change from zoom mode to select mode automatically when a legend entry is selected.

9) Controlling groups of objects in a plot collectively.

10) Any advanced Object Oriented Topics.

I think every serious MATLABber knows the value of the file exchange, and everyone probably has a “file exchange” folder that automatically gets added to their path at startup (or is this just me?)

What I’d like to read about are ways that people manage this folder.

For instance, every FEX entry has an FEX id. Do you store every entry in a separate subfolder by its ID? Do you categorise entries such as:

/geometryFunctions
/mathsFunctions
/plottingFunction
/etc…

And I think a big issue (for me at least) comes with versioning. What happens when Oliver updates his export_figure entry? Does everybody in the world re-download it straight away? Do they have alerts set up for only the entries they would update (if new features or bug fixes were posted).

Wouldn’t it be great if there was a way to manage all of this… MATLAB itself lets you download specific entries… I think it would be an awesome feature to also track new versions of those entries. Maybe a user could simply be alerted that a new version was created, and have the option to update to that version if they choose…

It’s a big can of worms past that point, but those worms might be really useful too :)

Thanks,
Sven.

There are two things I’m keen to see / learn. First, more about how to use the new interface. The three tutorials are good — so far — but there are a zillion buttons on the new interface. Some are a bit less obvious than others.
Second, there was a webinar recently titled ” Introduction to Matlab.” It was very very good. But darn, it was hardly an introduction. I’ve been using Matlab for a long time, and I thought this ” intro” was actually step 2, or maybe step 3. I’d suspect that a genuine newbie would be blown away. I would like to see a Webinar called something like A child’s guide to a Introduction to Matlab. That is, the same material, but with a lot fewer places where magic happens, and more places where it is step by step.
Many thanks

I’d appreciate seeing entries relating to Matlab Mapping abilities. I use Matlab’s Mapping toolbox a fair bit and I’d like to learn more about its own capabilities or how to tie Matlab with other products. Matlab’s own capabilities of course include reading and writing shape files while a great addition from the file exchange was the Google Earth toolbox.

It’d be useful to have a post discussing nearly duplicated entries. How to search and find existing entries before you decide to submit yet another one. And if you decide that your submission is unique, to explain why it’s so. Also citing (“acknowledging”) related submissions, so that folks will see your submission from related ones. See for example FX#28765.

A couple of more ideas. The challenge is how best to explore the network of FX entries…

Offer FX “bundles”, aggregating submissions likely to be used together or that share a common intererst, e.g., publication-quality figures (making, exporting, etc.), geometrical calculations, etc. A good start might be demonstrating the top-5 entries in the most popular tags.

This is a wild one. Try and match FX submissions to Wikipedia articles. A support vector machine could help in doing this. Then explore which articles have the most submissions associated with, and vice-versa.

Look at the download patterns. Are there submissions downloaded more frequently near the time of college final exams? What entries are most commonly downloaded from non-educational domains? Are the most popular entries in Australia different from those in the U.S.? How about non-English speaking countries? Assuming the volume of downloads is significant, it might be possible to infer some pretty robust patterns.

Ideas could be borrowed from other sites. E.g., Amazon’s “Customers Who Bought This Item Also Bought”. Spice-up the tags text cloud with images in a Pinterest-like visualization, etc.

Thanks everyone! Richard, Steve, Sven, tony, Andrew, and Felipe, you will all get a MathWorks swag! (Yes, I know that’s more than 5).

I’ll send an email to each of you to get your mailing address.

Also, stay tuned for future discussions/posts on some of these topics!

Another idea for strengthening the connections among FX entries. Offer an “Applications” view, similar in style to the existing “Categories” view. Yet its contents would resemble less the MATLAB Documentation and more the way each knowledge discipline organizes itself. In a sense, such a hierarchical organization would complement the flatter tags cloud. That is in addition to the curated “FX Bundles” that have been previously suggested.

These postings are the author's and don't necessarily represent the opinions of MathWorks.