why am I getting this error?
Show older comments
%the error
Not enough input arguments.
Error in Exam2>odefun (line 92)
f=[0 ; (2*f0-f0.*heaviside(t,t1)-2*f0.*heaviside(t,t2))];
Error in Exam2 (line 65)
[t,x]=ode45(odefun,tspan,IC);
%my ode45 call
IC=[x0 v0];
tspan=0:dt:tf;
[t,x]=ode45(odefun,tspan,IC);
%my function
function xdot=odefun(t,x)
global f0 wn t1 t2
A=[0 1 ; -wn^2 0];
f=[0 ; (2*f0-f0.*heaviside(t,t1)-2*f0.*heaviside(t,t2))];
xdot=A*x+f;
end
Accepted Answer
More Answers (1)
Cris LaPierre
on 6 Nov 2020
0 votes
Have you created your own heaviside function? The one created by MathWorks only accepts a single input. The one you are using has 2, and apparently expects more.
1 Comment
Michael Abend
on 6 Nov 2020
Categories
Find more on Ordinary Differential Equations in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!