Originally I intended to write only couple of lines about programmatically plot editing in MatLab. But then digging a bit more through the web, I found quite interesting stuff about possibilities you can do in MatLab with the GUI. So now it is a bit more, I hope you like it.
As I am a comfortable guy, I find working in plot editor mode kind of annoying. I do not like clicking all around and enjoy much of doing things programmatically, especially things which have to be do 20-30 times or even much more often per day.
Today I had to plot several similar figures. All the figures needed a title, so instead doing this in editor mode, I wrote a line of code. Actually I wanted the title to be two lines long therefore multiline and thought a simple ‘\n’ like I know it from C++ would do it, but I was wrong.
The solution for multiline strings in MatLab is to handover the string as as a cell array where each entry? is a new line is . So if you want to give out
This is the first line
and this the second
just write
title( { ‘This is the first line’ ‘and this the second’} )
Simple need, simple solution.
Additionally while looking up on the web, I’ve found out another solution where actually the ‘\n’ – style input works. Just use ‘sprintf’ to format the text. So the above example would go like this:
title( ( sprintf(‘This is the first line \n this the second’ ) )
Of course you can also use value arguments as place holder:
test_string = ‘just testing’
title( sprintf( ‘print second line \n %s’, test_string ) )
where %s stands for a defined value like ‘just testing’ in this case.
So far, so good. But really interesting was to me to find out that you can use basic HTML commands to manipulate your figures beyond simple text strings. Actually it was new to me that you can define controls similar to those in PHP/HTML. By defining
handle = uicontrol
a simple button is created (default option for user interface control in MatLab). Of course be setting appropriate ‘Style’ you can create radio buttons, sliders, editable text fields and other useful controls, see uicontrol in the MatLab help.
Extened features come into play, when usage of ‘String’-property is made. Then you can just use HTML-tags and format the control in HTML Style, e.g.
uicontrol(‚Style‘,’popup‘, ‚Position‘,[10,10,150,100], ‚String‘, … {‚<HTML><BODY bgcolor="green">green background</BODY> </HTML>‘, … ‚<HTML><FONT color="red" size="+2">Large red font</FONT></HTML>‘,…'<HTML><BODY bgcolor="#FF00FF"> <PRE>fixed-width font‘});
creates a nice and colorful pop-up menu. Having this you can improve your figure just by adding some simple HTML- tags.
Have fun playing around….