index exceeds matrix dimensions error

Here is some code i've been working on and i keep getting the "index exceeds matrix dimension" error
%Calculate Trajectory
v = 200;
theta = 20;
g = 32.2;
i = 0;
t(1) = 0;
h(1) = 0;
x(1) = 0;
while(h >= 0)
i=i+1;
h(i) = v.*(t(i)).*sind(theta)-1/2.*g.*(t(i)).^2;
x(i) = v.*(t(i)).*cosd(theta);
t(i) = t + .1;
h=h(i);
end

 Akzeptierte Antwort

Sean de Wolski
Sean de Wolski am 13 Feb. 2012

0 Stimmen

After the first iteration of the loop, x,h,t, are all still scalars and you're going to try and refernce their second element (i==2). That index exceeds the dimension and you get the above error.

1 Kommentar

Benjamin Lynch
Benjamin Lynch am 13 Feb. 2012
ok thank you, how do i initialize x,h,and t so that they are vectors and the first element in all of them is 0?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 13 Feb. 2012

0 Stimmen

v = 200;
theta = 20;
g = 32.2;
i = 0;
t(1) = 0;
h(1) = 0;
x(1) = 0;
while(h(end) >= 0)
i=i+1;
h(i+1) = v.*(t(i)).*sind(theta)-1/2.*g.*(t(i)).^2;
x(i+1) = v.*(t(i)).*cosd(theta);
t(i+1) = t + 0.1;
end

2 Kommentare

Benjamin Lynch
Benjamin Lynch am 13 Feb. 2012
when i plug that code in i get this error:
In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in trajectory (line 24)
t(i+1) = t + .1;
Srinivas
Srinivas am 13 Feb. 2012
change this line
t(i+1) = t(i) + 0.1;

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by