4

Matlabで以下を設計しようとしています:

** loop start;
   y(:,i) = function of x;
   z(:,i) = function of x;
   plot(x,y(:,i))   on figure 1, hold all;
   plot(x,z(:,i))   on figure 2, hold all;
** loop end;
   add title, legend, etc for figure 1 (NB: we have multiple lines);
   add title, legend, ets for figure 2 (NB: same, have multiple lines for the legend);`

多くの運なしで複数の組み合わせを試しました。なんとか2つの図を取得できましたが、最初ではなく2番目だけが複数の行を表示します。そして、これら2つに凡例を正しく追加する方法がわかりません。

4

2 に答える 2

4

各 Figure と各軸オブジェクトにハンドルを保存します。

fh1 = figure;
hold all;
ah1 = gca;

fh2 = figure;
hold all;
ah2 = gca;

for i=1:N
    y(:,i) = function of x;
    z(:,i) = function of x;
    plot(ah1, x, y(:,i)); %# tell it which axis to use (ah1)
    plot(ah2, x, z(:,i)); %# (ah2)
end

legend(ah1, ...) %# legend options here
legend(ah2, ...) %# and the other legend

%# note: you can set figure properties for each using fh1, fh2 handles.
于 2012-08-26T22:31:14.800 に答える
0

あなたはこれを行うことができます:

figHandle1 = figure(1);
figHandle2 = figure(2);

次に、その図にプロットする場合は、次のようにします。

figure(figHandle1) %Plot on figure 1
%ie plot(someStuff)
figure(figHandle2) %Plot on figure 2

また、タイトルなどについても同じです。次のようにして、どの図を識別する必要があります。

figure(handle);

お役に立てれば。

于 2012-08-26T22:30:58.013 に答える