Handling figures built for different parameters in Matlab
4 views (last 30 days)
Show older comments
tensorisation
on 4 Apr 2016
Commented: tensorisation
on 5 Apr 2016
i couldn't find a simple answer to this thing im trying to do in Matlab. i'm gonna simplify this - say i have a function file that does some calculation for given parameter a:
[]=my_function(...,a)
...
calculations to obtain some functions y_1(x),y_2(x),... for a given a
...
figure(1);
plot(x,y_1);
title('y_1(x)');
xlabel('x');
ylabel('y_1');
set(legend(sprintf('y_1(x) for a=%g',a)),'interpreter','latex','Location','best');
figure(2);
plot(x,y_2);
title('y_2(x)');
xlabel('x');
ylabel('y_2');
set(legend(sprintf('y_2(x) for a=%g',a)),'interpreter','latex','Location','best');
...
i'm interested in plotting y_1(x) for different values of a (say 5 different values), all in a single figure (with a proper legend of course). same goes for y_2(x),y_3(x),...
whats the simplest way to do it?
i was thinking of making my_function return the plot/figure handle for each of the y_i's and then make a new script/function file that will do something like:
a=[0,1,3,5,7];
h_1=my_function(...,a(1));
h_2=my_function(...,a(2));
...
and somehow combine the figures from h_1 and h_2, but im not sure how to do it properly with the legend and everything.
0 Comments
Accepted Answer
Steven Lord
on 4 Apr 2016
If by "all in a single figure" you actually mean a figure window, look at the subplot function.
If by "all in a single figure" you actually mean inside a single axes, look at the hold function.
5 Comments
Walter Roberson
on 4 Apr 2016
ph{1} = plot(....);
leg{1} = 'My First Legend';
ph{2} = plot(....);
leg{2} = 'My Second Legend';
legend(cell2mat(ph), leg)
More Answers (0)
See Also
Categories
Find more on Legend in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!