MATLAB: Error using FEVAL and odearguments


What does this mean and what could be the possible reasons behind it?
??? Error using ==> feval Undefined function or method 'pitch_fn.m' for input arguments of type 'double'.
Error in ==> odearguments at 98
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ==> ode45 at 172
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, …
Error in ==> pitch_model1 at 41
[t,y] = ode45('pitch_fn.m',time , [q(1) q(2) q(3) qdot(1) qdot(2) qdot(3)] );
I have ensured that both the script and function are in same folder. But i cant figure out any reason for the undefined function and errors below it.
I am trying solving ODE ( 2nd order, three variables) through ode45.

Best Answer

Do not include the ".m" in the function name.
[t,y] = ode45('pitch_fn', time , [q(1) q(2) q(3) qdot(1) qdot(2) qdot(3)] );
Even better if you do not have a fairly old MATLAB is to use function handles:
[t,y] = ode45(@pitch_fn, time , [q(1) q(2) q(3) qdot(1) qdot(2) qdot(3)] );