Borrar filtros
Borrar filtros

Handling figures built for different parameters in Matlab

4 visualizaciones (últimos 30 días)
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.

Respuesta aceptada

Steven Lord
Steven Lord el 4 de Abr. de 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 comentarios
Walter Roberson
Walter Roberson el 4 de Abr. de 2016
ph{1} = plot(....);
leg{1} = 'My First Legend';
ph{2} = plot(....);
leg{2} = 'My Second Legend';
legend(cell2mat(ph), leg)
tensorisation
tensorisation el 5 de Abr. de 2016
thanks, i think i worked out the issue.

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by