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

1 Comment

I thought that make rho(1)=something just means that i set the first rho value and then the loop would update every value after that? How should I change this?

Sign in to comment.

 Accepted 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.

More Answers (1)

Stalin Samuel
Stalin Samuel on 9 Oct 2015
In the line rho(1)= po*M/(R*To); you define that size of rho is 1.But you are accessing the values from 1 to 480.So it says that rho(2) does not exist.

1 Comment

h = 0;
rho= po*M/(R*To);
t = 0;
vy= 0;
dt = 1;
p= po;
T= To;
x = 0;
vx= 0;
Fdy= 0;
Fdx= 0;

Sign in to comment.

Categories

Find more on Particle & Nuclear Physics in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!