Error using odearguments???

What does this error message mean?
??? Error using ==> odearguments at 120
Inputs must be floats, namely single or double.
Error in ==> ode45 at 172
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Error in ==> Testfunction at 32
[t,x] = ode45(@somefn, tspan, x0);
Thanks in advance for any help!

 Accepted Answer

Jan
Jan on 28 Mar 2012
The message means, that the subfunction odearguments recieves non-float values, although it needs this type. The message is actually clear in this point.
Are tspan or x0 both floating point types? You can check this by:
class(tspan)
class(x0)

3 Comments

Thank you, @Jan! I have found that class(x0) is 'sym' by your suggested method.
But I don't know why it is a symbol, what I did was:
a0 = input('a0:');
b0 = input('b0:');
c0 = f(a0,b0) %where f is some function defined earlier in the form f = @(a,b) ...
x0=[a0, b0, c0]
Jan
Jan on 28 Mar 2012
What did you type in at the input prompts? Perhaps variables, which have been declared as SYMs before?
I have written up this question here:
http://www.mathworks.co.uk/matlabcentral/answers/33756-symbols-vs-floating-points
But no, the inputs are numbers and I found that if I deleted c0, MATLAB is quite happy.
I don't understand what's wrong with c0 though. When I run it without c0, I get, for example
{x0 =
10 10}
class(x0)=double
whereas with c0, I get
{x0=
[10, 10, 20]}
,say, and
class(x0)=sym
So Matlab does get numbers, I don't know why the square brackets though and why the class.

Sign in to comment.

More Answers (1)

shobhit kumar
shobhit kumar on 25 Dec 2013

1 vote

i have the same problem but when i check class of x0 and tspan it is double than why i got the same error

Products

Asked:

on 28 Mar 2012

Answered:

on 25 Dec 2013

Community Treasure Hunt

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

Start Hunting!