2014-10-20 6 views
0

내 MATLAB 코드에서 여러 개의 그림을 만들고 핸들을 저장합니다. 일부 작업으로 인해 모든 수치를 닫아야합니다. 저장된 핸들 중 하나에 해당하는 그림을 어떻게 열 수 있습니까? 효율적인 솔루션보다 해결의 더,하지만 당신은 메모리/변수 생성을 줄 수있는 경우에, 당신이 열려있는 동안 그림의 내용을 저장하는 getframe을 사용할 수 있으며,이 닫혀 후 다시 표시특정 핸들 (MATLAB)에 해당하는 숫자 표시

x=0:0.01:1; 
y=x.^2; 
h1 = plot(x,y); 
... 
close all 
... 
"What next?" 
+5

내가 matlab의 복사본을 가지고 있기 때문에 잠시 동안 있었지만 꽤 가까운 그림을 삭제합니다. 어쩌면 가시성을 없애 버릴 수 있습니까? 또는 파일에 저장 하시겠습니까? – RishiG

답변

0

:

clc 
clear 

x = 1:10; 

y = sin(x); 
y2 = cos(x); 

h1 = plot(x,y); 

h1Frame = getframe(gcf); 
MyData = h1Frame.cdata; 

h2 = plot(x,y2); 

close all 

imshow(MyData) 

희망적인 단점에도 불구하고 희망 :). 당연히 당신은 여러 개의 숫자와 핸들을 일반화 할 수 있습니다. 재미있는 질문입니다!

0

숫자를 생성 한 후 디스크 공간이있는 경우 hgsave을 사용하여 파일을 fig 개로 저장 한 다음 hgload을 사용하여 다시로드하십시오.

n = 1:10; 
x = 0:0.01:1; 
K = length(n) 
for k = 1:K 
    h = figure(k) 
    y = x.^n(k); 
    plot(x,y) 

    hgsave(h,sprintf('PowerPlot_n=%d',n(k))); 
end 
close all 
clear all 

hgload('PowerPlot_n=4.fig') %for instance 
h = gca; 

이렇게하면 여러 개의 그림이 만들어지고, 모두 닫히고, 모두 삭제 된 다음 다시 메모리에로드됩니다. 로드 된 그림은 마치 닫힌 적이없는 것처럼 마치 XDataYData 및 기타 속성을 갖기 때문에 확대/축소 및 편집이 가능합니다.

아직 사용하지 않았지만 savefigopenfig을 살펴볼 수도 있습니다.