2017-09-11 6 views
2

%%으로 구분 된 여러 스크립트 셀이있는 scriptfile을 만들려고합니다. 다음 코드는 이전 그림과 원을 하나씩 반환합니다. 그러나 그림 창을 지우고 특정 스크립트를 실행할 때 하나의 그림 만 가져옵니다. 내가 무엇을 얻을Matlab. 하나의 스크립트 셀이 두 개의 숫자를 반환합니다.

% Rita tan(x) 
x=((-pi/2)+0.01:0.01:(pi/2)-0.01); 
y=tan(x); 
plot(x,y) 
grid on 
%% 
% Exempel 1 
x=linspace(0,8); 
y=x.*sin(x); 
plot(x,y) 
title('f(x)=sin(x)') 
%% 
% Plot circle 
t=linspace(0,2*pi); 
x=cos(t); y=sin(t); 
subplot(1,2,1) 
plot(x,y) 
title('Utan axis equal') 
subplot(1,2,2) 
plot(x,y) 
axis equal 
title('Med axis equal') 
%% 
% Funktionsytor 
x=linspace(0,5,50); 
y=linspace(0,5,50); 
[X,Y]= meshgrid(x,y); 
F=X.*cos(2*X).*sin(Y); 
surf(X,Y,F) 
%% 

은 다음과 같습니다

enter image description here

나는 그 중 하나를 얻을 어떻게해야합니까?

답변

1

사용 clf (그림 삭제)를 클릭하여 현재 그림에서 모든 그래픽 개체를 삭제합니다. 무작위 순서로 스크립트를 실행할 가능성이 높으므로 명시된 이유로 각 섹션 시작 부분에 clf을 사용하십시오.
질문에 표시된 순서대로 스크립트를 실행하는 경우 서브 플로트 이후 섹션 시작 부분에 clf을 추가하면됩니다.

+0

오 하느님 ... 저는 RUN SECTION 대신 RUN을 눌러 왔습니다 ... 정말 미안 해요.하지만 코드 덕분에 제게 많은 도움이되었습니다. 늦었 어. – Parseval

2

마지막 섹션이 실행될 때 subplot(1,2,2) 명령으로 정의 된 축은 여전히 ​​current axes이므로 다음 플롯이 추가됩니다. 당신은 할 수 close the previous (i.e. current) figure 새로운 그림과 축이 다음 플롯 생성되도록 마지막 섹션의 시작 부분에 : 일반적으로

% Funktionsytor 
close(gcf); 
x=linspace(0,5,50); 
... 

, 다른 figures 또는 axes를 많이 다루는 가장 좋은 방법은 당신 것을 지시 각각에 대해 store unique handles이어야합니다. 그렇게하면 필요에 따라 특별히 수정할 수 있습니다. 예를 들어, 당신과 같이 두 개의 그림에서 두 개의 줄거리를 그릴 수 :

%% 
% Plot circle 

t = linspace(0, 2*pi); 
x = cos(t); 
y = sin(t); 

hFigure1 = figure(); % Create first figure 
plot(x, y);   % Plot to axes in first figure 
title('Utan axis equal'); 

hFigure2 = figure(); % Create second figure 
plot(x, y);   % Plot to axes in second figure 
axis equal; 
title('Med axis equal'); 

을 이제 나중에 코드에서 필요에 따라, 둘 중 하나 또는 둘 모두를 닫을 수 있습니다 :

close(hFigure1); % Closes the first figure, second still exists 
+0

어디에서 해당 명령을 추가합니까? 방금 명령 창에 입력했으나 그림 창을 닫았습니다. 그런 다음 스크립트를 실행했지만 여전히 동일한 결과를 보였습니다. – Parseval

+0

@Parseval :'% Funktionsytor' 다음에 줄에 추가합니다. – gnovice

+0

이제 마지막 스크립트의 줄거리 만 얻습니다. 그러나 어떻게 위의 원 스크립트의 줄거리를 얻을 수 있습니까? – Parseval