Error using odearguments???

15 次查看(过去 30 天)
Richard
Richard 2012-3-28
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!

采纳的回答

Jan
Jan 2012-3-28
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 个评论
Jan
Jan 2012-3-28
What did you type in at the input prompts? Perhaps variables, which have been declared as SYMs before?
Richard
Richard 2012-3-28
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.

请先登录,再进行评论。

更多回答(1 个)

shobhit kumar
shobhit kumar 2013-12-25
i have the same problem but when i check class of x0 and tspan it is double than why i got the same error

产品

Community Treasure Hunt

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

Start Hunting!

Translated by