1
如果我有一個函數myFunction(x,y,z)
像Matlab的繪製多種功能
function myFunction = (x,y)
for n=1:3
f = x+y^n+1;
plot(x,f)
end
我怎麼能調用這個函數在一個單獨的腳本文件中的一個圖形繪製的一切嗎?這不起作用:
hold on
myFunction(3,2)
myFunction(1,2)
如果我有一個函數myFunction(x,y,z)
像Matlab的繪製多種功能
function myFunction = (x,y)
for n=1:3
f = x+y^n+1;
plot(x,f)
end
我怎麼能調用這個函數在一個單獨的腳本文件中的一個圖形繪製的一切嗎?這不起作用:
hold on
myFunction(3,2)
myFunction(1,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
您的'myFunction(x,y,z)'與您的示例不符。也許這是原因?是一個錯字? – Marcin
你需要打開一個數字窗口,然後才能執行「hold on」。或者在2'myFunction'調用之間放置'hold on',或者在'hold on'之前執行'figure()'。 – David