MATLAB Spoken Here

What if MATLAB had only 4 buttons? 16

Posted by Michael Katz,

Yesterday I went to the Apple Store to drool over the new iPod Touch. Playing around with its applications I was reminded of a scene in the recent web production: Dr. Horrible’s Sing-a-long Blog. In one scene Dr Horrible controls a van using 10-button app on his iPhone.

I’ve recreated that UI below, in a purposely-stylized sketch. Is this UI sufficient to drive a vehicle? My automatic ’03 Ford Taurus has well over 60 buttons, dials, levers, etc. factory-installed within arm’s length of the driver. That’s a lot more than Dr. Horrible’s controller.

Dr. Horrible's Controls

This got me thinking, what if Matlab had only a few buttons? What are the essential functions that one would need?

I took a sample of my co-workers (based on who was at his/her desk at the time) and gave them 30-seconds to come up with their version of the four-button MATLAB. I took down their first four or five thoughts. As you can see, there are some patterns.

Will (usability): Will chose Data Import, Edit, Plot, Export Variable, with a runner-up of “call technical support (not an actual feature)”.

Import, Edit, Plot, Export

Ken: Ken’s choices were Run, Save, Help, and New M-File

Run, Save, Help, New

Linda (documentation): The Current Directory, Preferences, Command History (not real icon), M-Lint, with a runner-up of Help.

directory, preferences, history, mlint

Dan: Help, Halt Execution (not real icon), New M-File, Open File

help, break, new, open

Zain: Help, Editor, Plot, Path tool (not real icon)

help, edit, plot, path

Adam & Ammar (technical support): Save, New M-File, Help, Open, runner-up: Command History

save, new, help, open

Jiro (application engineering): Start, Up One Directory, Plot, Run M-File

start, up, plot, run

I also had to ask Seth, to make sure the Simulink side of things is represented.
Surprise, suprise, Seth chose: Simulink, the Editor, Help, and Exit MATLAB (not real icon).

simulink, editor, help, exit

I think he went with “Exit” because I caught him trying to wrap up and go home for the weekend. I also let him have Shortcuts, which violates the spirit of this exercise, but I think it demonstrates one good point: MATLAB is too complex for us to please everybody with just one subset of tools, and that is why we try to make it is customizable as possible.

Finally, Mike: At first I came up with M-Lint, Editor, Run, and Import. I also wanted Help and the Web Browser. I also cheated and added a Command-Line.

M-Lint, Editor, Run, and Import with Command Line

If your MATLAB had only four buttons, what would you choose?

PS: And no, don’t expect any sing-a-longs on the Desktop blog, but you may be able to get Doug to sing for beer. :)

16 CommentsOldest to Newest

With the improvements to the Matlab Editor in recent versions I find myself using less and less buttons:

- MLint, which I used to invoke regularly is now integrated into the editor. The little green square makes me a happy man!
– I either alt-tab to the command window to run applications, or shift to my test harness in the Editor and hit F5 (our coding scheme specifies all functions have a test harness that can take no arguments and asserts on test failure)
– Debugging, I click to add break points and either F9 or F10 my way through the code, F5 once i’m happy.
– Help, I’m used to typing ‘help fprintf’ if i want quick reference or ‘doc fprintf’ if I want a little more information
– Profiling, ‘profile on’, ‘profile viewer’ are all I need!

Overall I find I use few of the ‘helper GUIs’ such as the Data Import / Plotting / Line Fitting / …, I prefer to invoke from the command line. It just matches my workflow better.

So.. My 4 button Matlab (Assuming I get the glorious Editor for free by typing ‘edit ‘):
________
| |
| New |
| M-File |
|________|
________________________________________________________
| |
|>> fprintf(1, ‘Hello World\n’) |
|________________________________________________________|

Hi.
I only ever use 3 buttons. “Publish”, “Evaluate cell”, and “Evaluate cell and advance”.

Then I use 2 windows: “Command window” and “Editor window” side-by-side covering as much of my screen as possible.

When using functions I don’t know by heart, I call the doc up from the commandline and have it as a separate maximized window.

–DA

Rodney and Daniel,
That’s great feedback. It’s great that you’ve found workflows that combine the best of the GUI (gooey?) parts and the command line.

@Rodney,
I asumme you mention fprintf because that is one you come back to often. Is it remembering the calling syntax, or as a reference for the various formatting options (e.g. \n, \s, etc.) ?

@Daniel,
Do you use a large Command Window to keep track of a history of commands, or displaying large amounts of output, such loop variables or big matrices?

@Rodney and Daniel,

Do either of you use the Help-on-Selection feature (described here)? I’m curious as to whether this lighter weight help alternative would better suit your work flows.

-Ken

I never use buttons. I use Menus with the mouse if I don’t know the shortcut.

I have the Editor and the Command window docked. The Editor is ~100 characters wide, the Command window is a little narrower. I use functions or scripts for almost everything and run with F5. I use the Command window to check to see where the errors occurred and (occasionally) to view output as the code is running, so that I can check things are working as I am intending.

I often have the Help (which I think is really well written but is very hard for new users) open in a separate window (I normally use 2 monitors). I don’t dock figures.

I have a simple suggestion to improve the Help on Selection feature. I often get halfway though a command and then forget the later options. For example, I will put

a=dlmread(‘text.txt’,

and can’t remember what goes next. F1 will bring up the help for dlmread if I got stuck at the ‘(‘, but it won’t bring up the dlmread help if the cursor is after the ‘,’. It’s sufficiently irritating to have to move the cursor back, that I often click the mouse in the Command window and type ‘doc dlmread’.

Overall though, (without wishing to sound ‘soppy’) I love Matlab. It changed the way I think about data, because it’s so much easier for me to analyze lots of stuff in a relatively short amount of time.

Hope this helps,

Ken Campbell

Ken,

I also will use a second monitor or Spaces for the documentation. I think you’ll be happy to check out MATLAB R2008b when it drops in the near future.

@Mike,
using fprintf’s help as an example does indeed stem from my forgetfulness when it comes to printf format specifiers. And I think that fprintf’s help isn’t even where they are displayed, but I know that I can get to them from that :)

@Ken,
Until I read the link you posted I was thinking “Help-on-Selection, what is that?”. Then I realised, oh yes, I do use that quite often by right clicking on a function and selecting ‘Help on selection’. I totally did not pay attention to the Keyboard shortcut. My apologies! :)

I prefer to use the full blown help when I don’t really know where to look and like to have the search tool available. For stuff such as fprintf reference, the lightweight help is fantastic because of its ‘always on top’ behavior (though with 2xMonitors the full blown help is ok on the other screen)

Speaking of 2008b… It seems to be running a little bit behind schedule? I was eagerly awaiting it come September 1 :)

And I’m always happy to provide feedback on MATLAB. Particularly when its in an environment such as these blogs where it can be seen directly by the devs/designers!

@Ken
Your link sent me to a 404, but if you are refering to placing the cursor on a word and then pressing F1, it is something I do every now and then. So far, doc is my method of choice, but i am starting to get used to F1.

@Mike
The latter. Visualizing matrices and getting an overview of trace output is what I use it for. For some reason I never ever use the variable editor or whatever it is called. Maybe if it could be called up with a shortcut and got equipped with smooth zoom within fingertips reach for easy overview….

–DA
PS Why does the spam question allways add up to 11 for me?

Thanks for the feedback guys.

I think there was a movie made about how sometimes a particular number keeps coming up over and over for a person. When I was on vacation a few weeks ago, I stayed in room #204 in four different hotels in the same week, by happenstance.

FOUR buttons? You’re spoiling yourselves :) Think about this…

I’m pretty sure there’s all the processing capability to run a stripped out version of MATLAB or Octave on an ipod touch… which has, you guessed it.. one button! (well, kind of)

Anyone ports MATLAB to an ipod touch, and I’ll buy one tomorrow!

On a slightly off-topic note, is there a reason that the menu bar is inside of the window on MATLAB Desktop for Mac? In other words, was this a design choice, and if so what was the reasoning?

Thanks!

Hi Andrew,

Unfortunately we can’t use the screen menu bar on the Mac due to a bug in Apple’s implementation of Java. This is certainly disorienting to all but the newest of Mac users. We’re working with Apple to resolve the issue.

-Ken

I would need The run button, the evaluate cell button, and a fast way to copy and paste blocks of code.

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