フィルターのクリア

Handling figures built for different parameters in Matlab

4 ビュー (過去 30 日間)
tensorisation
tensorisation 2016 年 4 月 4 日
コメント済み: tensorisation 2016 年 4 月 5 日
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.

採用された回答

Steven Lord
Steven Lord 2016 年 4 月 4 日
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 件のコメント
Walter Roberson
Walter Roberson 2016 年 4 月 4 日
ph{1} = plot(....);
leg{1} = 'My First Legend';
ph{2} = plot(....);
leg{2} = 'My Second Legend';
legend(cell2mat(ph), leg)
tensorisation
tensorisation 2016 年 4 月 5 日
thanks, i think i worked out the issue.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLegend についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by