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

 Accepted Answer

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 Comment

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?

Sign in to comment.

More Answers (1)

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 Comments

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;
change this line
t(i+1) = t(i) + 0.1;

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!