Help with a ode45 problem

10 Ansichten (letzte 30 Tage)
Esteban
Esteban am 1 Dez. 2012
Hi
I have the following function:
function f=matpendel(t,u,g,l,m,c)
f=[u(2)
-g/l*sin(u(1))-c/m*u(2)];
And I'm trying to plot this:
clf;
g=9.82; l=0.1; m=0.1; c=0.2; theta(0)=[10:30:130]*pi/180;
tspan=linspace(0,1,200);
for k=1:length(theta0)
u(0)=[theta0(k);0];
[t,U]=ode45(@(t,u)matpendel(t,u,g,l,m,c),tspan,u(0));
subplot(1,2,1), plot(t,U(:,1)), hold on
subplot(1,2,2), plot(U(:,1),U(:,2)), hold on
end
But I get the error Subscript indices must either be real positive integers or logicals. Does anybody know why?
  1 Kommentar
Jan
Jan am 1 Dez. 2012
The term "10:30:130" does not need additional square brackets. In fact, they only waste time, because this is a vector already.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 1 Dez. 2012
Bearbeitet: Azzi Abdelmalek am 1 Dez. 2012
The error is in
theta(0)=[10:30:130]*pi/180;
do you mean
theta0=
  1 Kommentar
Esteban
Esteban am 1 Dez. 2012
Bearbeitet: Esteban am 1 Dez. 2012
Ah yes, it is true that I meant theta0 and not theta(0), thanks!
But I still get the same error...
Edit: I changed u(0) to u0 too, now it works. Thanks!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by