1

plot()関数と関数を使用して、同じ軸に複数のプロットをプロットしていhold(Ax, 'on')ます。set(Ax, 'XData', ..., 'YData', ...)ただし、代わりにプロットに使用するとplot()hold(Ax, 'on')機能が機能しないことに気付きました。つまり、set()関数を使用すると、すべての曲線を同じ軸にまとめてプロットすることはできません。それはなぜですか、または機能を使用set()してまだ使用できる方法がある場合はどうですか? hold onありがとう!

4

1 に答える 1

4

この回答に基づいて、次の例のようなものを試すことができます。

x1 = linspace(1,10,21);
y1 = rand(1,21);

x2 = x1;
y2 = rand(1,21);

x3 = x2;
y3 = rand(1,21);

h(1) = plot(x1,y1,'b');

h(2) = copyobj(h(1),gca); 
h(3) = copyobj(h(1),gca); 

set(h(2),'XData',x2,'YData',y2,'Color','r')
set(h(3),'XData',x3,'YData',y3,'Color','g')

このsetコマンドは、ハンドルによって参照されるオブジェクトのプロパティを更新します。1 つの曲線を何度も変更したくないが曲線を追加したい場合は、 を使用して最初の線オブジェクトをコピーする必要がありますcopyobj。これを行うと、プロパティを設定できる追加の線を無限に生成できます (必要に応じて new を含む'XData''YData'ただし
、コピーおよび変更するには最初の線オブジェクトが必要になります。
また、方法によっては、プロットを設定するにgcaは、参照が正しくなるように軸ハンドルに置き換えることを検討してください。

于 2013-06-28T14:25:11.150 に答える