2014-05-22 1 views
1

음모를 꾸미고? 이 작동하지 않습니다Matlab의 여러 기능

hold on 

myFunction(3,2) 
myFunction(1,2) 
+0

귀하의'myFunction (x, y, z)'가 귀하의 예와 일치하지 않습니다. 어쩌면 이것이 이유일까요? 오타예요? – Marcin

+1

'hold on'을하기 전에 그림 창을 열어야합니다. 2 개의'myFunction' 호출 사이에'hold on '을 놓거나,'hold on' 전에'figure()'를하십시오. – David

답변

2

두 가지 가능한 대답,

function f = myfunction(x,y,fig) 
if nargin<3; 
    fig = gcf; 
end 

isHold = ishold(gca(fig)); 
hold on 
n = 1:3; 
f = x+y^.n+1; 
plot(x,f,'o') % Or whatever marker you select 
if ~isHold 
    hold off; 
end 

을 당신은 단지 당신이 물론 for 루프 모든 일에 점 간단하게 플롯 싶었다 것을 의미합니다.

function f = myfunction(x,y) 
figure; 
n = 1:3; 
f = x+y^.n+1; 
plot(x,f,'o'); % Or whatever marker you select. 
% plot(x,f); % line plot 

그러나 가장 간단한 해결책은 다른 것입니다. 함수를 익명 함수로 바꿉니다.

f = @(x,y,n) x+y^.n+1; 
figure; 
plot(x,f(x,y,1:3)); % Plot as a line plot 
% plot(x,f(x,y,1:3),'o'); % plot as markers