2013-08-28 27 views
5

Figureをプロットするためにplotコマンドを使用し、setコマンドを使用して多くのプロパティを変更しました。私はプロットのハンドル(例えばh1)も保存します。既存のMATLABプロットを別の図にプロットする

私が必要とするのは、ハンドルを使用して、後で同じ図を自分のコードの後ろにプロットすることです。私はplotコマンドをチェックし、ハンドルを受け付けるバージョンは見つけられませんでした。私はまた、XdataとYdataを入手し、それらを使って同じ数字を再プロットすることを考えました。

最も簡単な解決策は何ですか?

編集1:PeterMが提案したcopyobjに基づく作業サンプルコード。

hf(1) = figure(1); 
plot(peaks); 

hf(2) = figure(2); 
plot(membrane); 

hf(3) = figure(3); 
ha(1) = subplot(1,2,1); 
ha(2) = subplot(1,2,2); 

for i = 1:2 
    hc = get(hf(i),'children'); 
    hgc = get(hc, 'children'); 
    copyobj(hgc,ha(i)); 
end 

編集2:私はまた、サブプロットに(伝説を含む)の数値をコピーすることができますthis functionが見つかりました。

答えて

5

私は以前この状況に遭遇しました。あなたが何をしようとしているかによって、copyobjが適切かもしれません。この機能を使用すると、1つの軸の内容を新しい図形にコピーできます。素敵な答えを@PeterM改善

2

saveasを使用してFigureをファイルに保存し、openを使用してこのファイルから正確に同じFigureをロードできます。

3

、1簡単な方法は、次のようになります。

fig2H=copy(gcf) % or change gcf to your figure handle 

しかし、あなたは唯一の軸、または穴の姿をしたい場合には、あなたが望むものに依存し...ところで

、それは少なくともHG2ではなく、伝説のハンドルをコピーしていないようだ。

0

これは、あなたが望むものを達成するための怠慢な方法です。

% Sample plot 
f1 = figure(1); 
plot(0:0.1:2*pi, sin(0:0.1:2*pi)); 
f2 = figure(2); 

% The code you need 
saveas(f1, 'temp.fig') 
f2 = hgload('temp.fig') 
delete('temp.fig') 
関連する問題