Filter löschen
Filter löschen

Not enough input arguments.

1 Ansicht (letzte 30 Tage)
Turgut Ataseven
Turgut Ataseven am 5 Jun. 2021
Bearbeitet: Adam Danz am 8 Jun. 2021
function yp = predprey(t,y,a,b,c,d)
h=0.0625;tspan=[0 40];y0=[2 1];
a=1.2;b=0.6;c=0.8;d=0.3;
yp = [a*y(1)-b*y(1)*y(2);-c*y(2)+d*y(1)*y(2)];
[t y] = eulersys(@predprey,tspan,y0,h,a,b,c,d);
subplot(2,2,1);plot(t,y(:,1),t,y(:,2),'--')
legend('prey','predator');title('(a) Euler time plot')
subplot(2,2,2);plot(y(:,1),y(:,2))
title('(b) Euler phase plane plot')
[t y] = rk4sys(@predprey,tspan,y0,h,a,b,c,d);
subplot(2,2,3);plot(t,y(:,1),t,y(:,2),'--')
title('(c) RK4 time plot')
subplot(2,2,4);plot(y(:,1),y(:,2))
title('(d) RK4 phase plane plot')
end
Not enough input arguments.
Error in predprey (line 6)
yp = [a*y(1)-b*y(1)*y(2);-c*y(2)+d*y(1)*y(2)];

Akzeptierte Antwort

Adam Danz
Adam Danz am 5 Jun. 2021
Bearbeitet: Adam Danz am 8 Jun. 2021
yp = [a*y(1)-b*y(1)*y(2);-c*y(2)+d*y(1)*y(2)];
That line assumes a, y, b, c,and d are defined.
The variables a, b, c, and d are defined in your function but y is not. You've defined a variable 'y0'; perhaps you meant to use the variable y instead.
When you call your function with less than 2 inputs (or with no inputs), you receive the error because y is not defined.
Also note that defining input variables within a function is pointless unless you're just still developing the function and want to quickly test it. Otherwise, remove the variable definitions that are input variables or place those definitions within conditions that test for missing inputs.

Weitere Antworten (0)

Produkte


Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by