2013-08-28 2 views
5

그림을 그리기 위해 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 기능이 적절할 수 있습니다. 이 기능을 사용하면 한 축의 내용을 가져 와서 새로운 그림으로 복사 할 수 있습니다. 그것은 BTW, ...

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

하지만 당신은 축 또는 구멍 그림을 원하는 경우, 당신이 원하는에 따라 달라집니다 @PeterM 좋은 대답을 개선

2

saveas을 사용하여 그림을 파일에 저장하고 open을 사용하여이 파일에서 정확히 같은 그림을로드 할 수 있습니다.

3

, 하나 개 쉬운 방법이 될 것이다 적어도 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')