MATLAB: Help with for loop matrix size

% Initial values
h(1) = 0;
rho(1)= po*M/(R*To);
t(1) = 0;
vy(1) = 0;
dt = 1;
p(1) = po;
T(1) = To;
x(1) = 0;
vx(1) = 0;
Fdy(1)= 0;
Fdx(1)= 0;
% Position for loop
for i=1:480
m1(i) = ms + mt + ml*(1-t(i)/Tt) + mr + ms*(1-t(i)/Tb); % Mass Stage 1
g(i) = go * (re/(re+h(i)))^2; % Gravitational Acceleration Above Earth
Fdy(i) = .5 * rho(i) * vy(i)^2 * Cd *A; % Drag Force y-direction
rho(i) = (p(i) * M)/(R*T(i)); % Air Density
p(i) = po * (1-(L*h(i)/To))^(g(i)*M/(R*L)); % Air Pressure
T(i) = To - L * h(i); % Air Temperature
Fdx(i) = .5 * rho(i) * vx(i)^2 * Cd *A; % Drag Force x-direction
t(i+1)=t(i)+dt;
x(i+1)=x(i)+dt*(vx(i));
vx(i+1)=vx(i)+dt*(FTx1-Fdx(i))/m1(i);
h(i+1)=h(i)+dt*(vy(i));
vy(i+1)=vy(i)+dt*((FTy1/m1(i))+((vx(i)^2)/(re+h(i)))-g(i)-(Fdy(i)/m1(i)));
end
When I run this loop it says that rho(2) does not exist. It seems that the loop is not calculating a new value for rho every step. How should I fix this?
Thanks in advance

Best Answer

You currently have
Fdy(i) = .5 * rho(i) * vy(i)^2 * Cd *A; % Drag Force y-direction
rho(i) = (p(i) * M)/(R*T(i)); % Air Density
You need to exchange those two lines so rho(i) is set before it is used.