2017-04-14 35 views
0

現在、図を作成し、プロットを追加して凡例アイテムを追加する反復プロセスを実行しています。私はこれを一連のコマンドとして実行していますが、以下のスクリプトですべてを収集しています。実際のプロットは、私が物理的に反復しなければならない外部のプロセスに依存するので、これはスクリプトではないことに注意してください。matlabの凡例に後続のプロットを追加する

>> x = [0:1:10] 
>> y1 = [] 
>> y2 = [] 
>> y3 = [] 
>> figure 
>> hold on 

>> for i = 1:size(x,2) 
    y1(i) = x(i)^2 
end 

>> plot(x,y1,'b') 
>> legend('x^2') 

>> for i = 1:size(x,2) 
    y2(i) = 2*x(i)^2 
end 

>> plot(x,y2,'r') 
>> legend('2*x^2') 

>> for i = 1:size(x,2) 
    y3(i) = 3*x(i)^2 
end 

>> plot(x,y3,'g') 
>> legend('3*x^2') 

期待どおり、これは関心のある3つの機能を持つプロットを作成しますが、最後の項目のみを含む凡例を作成します。私はこれを喜んでいません。なぜなら、私がこれを一連のコマンドとして実行するとき、私は毎回古いアイテムと新しいアイテムで新しい伝説を作成する必要があるからです。

>> x = [0:1:10] 
>> y1 = [] 
>> y2 = [] 
>> y3 = [] 
>> figure 
>> hold on 

>> for i = 1:size(x,2) 
    y1(i) = x(i)^2 
end 

>> plot(x,y1,'b') 
>> legend('x^2') 

>> for i = 1:size(x,2) 
    y2(i) = 2*x(i)^2 
end 

>> plot(x,y2,'r') 
legend('x^2','2*x^2') 

>> for i = 1:size(x,2) 
    y3(i) = 3*x(i)^2 
end 

>> plot(x,y3,'g') 
>> legend('x^2', 2*x^2','3*x^2') 

以前のすべてのコンテンツを書き換えることなく、現在の伝説に最後に追加されたプロットを追加するための効率的な方法は何を?次のように所望の結果を達成するためのコマンドが修正されなければなりませんかありがとう。

答えて

1

凡例に追加することはできませんが、前に来たことを知らなくてもそれを呼び出すことができます。これは、凡例を変数に割り当て、そのStringプロパティを使用して以前のエントリを呼び出すことに依存します。

% define plotting variables here 
x=0:0.1:1; y1=x.^2; y2=2*x.^2; y3=3*x.^2; 
% initialise figure 
figure; hold on; 
% plot 1 
plot(x, y1, 'b'); 
L = legend('x^2'); 
% plot 2 
plot(x, y2, 'r'); 
L = legend([L.String, {'2*x^2'}]); 
% plot 3 
plot(x, y3, 'k'); 
L = legend([L.String, {'3*x^2'}]); 

結果:

plot

関連する問題