Create smaller title size in matlab - matlab

I have 4 different subplots and I would like to create main title, I read that this can be done by using suptitle function, however, it worked well but the problem is that the title is too bold and large. How can I make it smaller ?!
Thank you guys :)

Save the handle to the text label generated with suptitle, and set the text properties:
h = suptitle(...)
set(h,'FontSize',20,'FontWeight','normal')

Related

Matlab border around figure

In attached image the output looks boring to me. Is it possible to have the subplots enclosed in a border?
Note: This question is not specific to publishing only but in general, say for exported images also.
Thanks
Postscript: I actually need this:
You can add a box like in here
making your code:
close all
figure()
padd=0.04
axes('Position',[padd padd 1-padd*2 1-padd*2],'xtick',[],'ytick',[],'box','on','handlevisibility','off')
subplot(1,2,1)
imagesc(magic(2))
subplot(1,2,2)
imagesc(magic(3))
This yields
And you can change the padd to be bigger or smaller
I obtained this just by plotting lines of different thickness 1.
The text was added with Inkscape though.
If I understand correctly what you want to do, you can obtain borders inside a figure using uipanels http://www.mathworks.com/help/matlab/ref/uipanel.html like this:
Code is:
u=uipanel('Title','MainPanel')
u1=uipanel('Parent',u,'BorderType','line','HighlightColor','k','Title','Subpanel 1','Position',[0,0,0.5,1])
u2=uipanel('Parent',u,'BorderType','line','HighlightColor','k','Title','Subpanel 2','Position',[0.5,0,0.5,1])
axes1=axes('Parent',u1)
imagesc(magic(2))
axes2=axes('Parent',u2)
imagesc(magic(3))
Of course you can change border widths, colors, titles and such

Matlab figure visualization

In Matlab, I would like to visualize the test results in a figure with several charts and text. The figure is divided into rows and colums: 3 rows and 5 colums. For better understanding, here a screenshot of the figure with a orange grid which shows the subplot division:
Now I have several questions:
A) How can I include text into a specific section within the figure? i.e. test settings into subplot(6 and 11) and test results into subplot (7, 8, 9, 10).
B) Is it possible to "draw" separator lines between the subplots? i.e. to separate the test settings from the test result subplots for a better visualization.
C) Is it possible to set a title over several subplots such as "input data" and "output data"?
Thanks for your help!
Cheers,
Kevin
I have come this problem many times and haven't yet figured out a decent way to solve it. However what you can do is:
A) Include a Label (help label) in the subplot you want. Alternatively use a "edit locked" edit text field.
B) Yes in a way. Check out panels. Create a subplot, then inside a panel that fills the plot area. with the panel as parent create a figure (or label as in A) )
C) Thats a tricky one and I would use panels again, but I am not sure if that works.
These things are always a pain to do in Matlab itself. I usually ended up exporting my figures, writing a small HTML generator that places the images in divs and a decent CSS to make it look nice. It is way easier to do so if it is only for representing data. If you want it to be interactive you have to do it inside the UI.
Hope that helps
Benjamin

Matlab figure contents lost while saving as eps/pdf

I have tried most of the usually used options (print(figr, '-depsc', 'cross_corr.eps');) to save a matlab figure as eps/pdf but each time I do it, the figure contents are saved partially and perhaps one quarter of it is lost.
I have shared the figure here: http://ge.tt/2ZrsdD02/v/0?c
Using the options such as the following save it completely but I prefer it save it directly inti eps/pdf:
print(figr, '-dpng', 'cross_corr.png');
The problem seems to be that you have very small values in the 'PaperPosition' property of the figure. Try changing them to the default ones,
set(figr, 'PaperPosition', [0.634517 6.34517 20.3046 15.2284])
and then apply your print(figr, '-depsc', 'cross_corr.eps').
I attach results on my computer without and with 'PaperPosition' correction (using GSview with bounding box showed):
Also, consider reducing font size to avoid overlapped text:
set(findobj('type','text'), 'Fontsize', 5)
If I first enlarge the figure size (by using the middle button on the top right), and then save it as eps, I get this: http://ge.tt/1Pv8YE02/v/0
The quality is very nice as compared to all other options and the content are also ok.
Its not possible to automate it through script?...

Count number of grid boxes which cover an object in an image

I have displayed grid boxes over an image. I want to count number of grid boxes which cover an object in that image
for example http://snag.gy/geFIZ.jpg. In this image I have displayed grid on image but i need to count how many girds have been taken to cover that object completely.? Kindly help me regarding this
Regards
Dams
Slow, but easy to implement way:
1) Use this topic to add lines to image.
2) Make something like this:
Make a cycle to check every box. In each box check pixels. If you found first white pixel in box, add 1 to number of covering boxes and go for next one.
No code from you - no code from me, sorry :) Good luck!

include 4 images as different panels in matlab

I am trying to include 4 already present images into one new image, done and created in matlab, like a collage, with 4 images present adjacent to each other, bordering, in the new image. I really do not know where to start. Could you please help me here? In matlab?
Another options if you don't want white space between images is to combine the images into a single matrix.
ie:
image([I1 I2; I3 I4])
of course the images have to be the same size for this to work...
Actually, apart from What Hassan suggested, I was able to achieve my purpose easily using subplot and subimages.
Eg.
subplot(2,2,1)
imshow(I1)
subplot(2,2,2)
imshow(I2)
Thanks for your help :).