MATLAB Spoken Here

What if MATLAB had only 4 buttons?

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.

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)”.

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

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

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

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

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

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

Surprise, suprise, Seth chose: Simulink, the Editor, Help, and Exit MATLAB (not real icon).

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.

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 Responses to “What if MATLAB had only 4 buttons?”

1. Loren replied on :

I’d choose New M-file, Publish, Import Data, and a combo debug/cell mode cluster!

–Loren

2. Rodney Thomson replied on :

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’) |
|________________________________________________________|

3. Daniel Armyr replied on :

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

4. Mike replied on :

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?

5. Ken replied on :

@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

6. Ken Campbell replied on :

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

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

7. Mike replied on :

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.

8. Rodney Thomson replied on :

@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!

9. Daniel Armyr replied on :

@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?

10. Mike replied on :

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.

11. Tom Clark replied on :

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!

12. Andrew Hershberger replied on :

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!

13. Ken replied on :

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

14. joel replied on :

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

15. joel replied on :

I would pay \$20 for a MATLAB app

16. Mike replied on :

Joel,

Thanks for your response. I’d also like a MATLAB app, but the hardware is not yet powerful enough :)

 Name (required) E-mail (required, will not be published) Website (optional) Spam protection (required): What is 6 + 7 ?

Wrap code fragments inside <pre> tags, like this:

<pre class="code">
a = magic(3);
sum(a)
</pre>


If you have a "<" character in your code, either follow it with a space or replace it with "&lt;" (including the semicolon).

News from the intersection of MATLAB, Community, and the web.

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