Subscript indices must either be real positive integers or logicals. Error?

clc
clear
gravity = 9.81;
px = -0.36;
py = -0.02;
Ra = 0.0015;
Rw = 0.06;
Mv = 0.5;
Mp = 0.05;
Np = 3;
BLrelaxed = 0.09;
BLstretch(1) = 0.2;
usv = 0.02;
ukv = 0.01;
m = 0.133;
b = 1.016;
dt = 0.1;
accel(1) = 0;
Vel_car(1) = 0;
distance(1) = 0;
t(1)=.1;
while distance(i)< 6.096
if (t(i)< 0.1) && (Fband(i)>0)
i=i+1;
Dop = sqrt((px-0)^2+(py-0)^2);
Lstring = .2706;
Percentstretch = (BLstretch(i)/0.09)*100-100;
Fband = m*(Percentstretch)+b;
Fmotive = (Ra/Rw)*Fband;
Tot_VehicleMass = Mv+(Np*Mp);
Ffs = usv*(gravity*Tot_VehicleMass);
Fnet = Fmotive - Ffs;
accel(i) = Fnet/Tot_VehicleMass;
Vel_car(i) = Vel_car(i-1)+accel*dt;
distance(i) = distance(i-1)+vel_car*dt;
StrUnwind(i)=distance(i-1)*(Ra/Rw);
BLstretch(i)=Dop-(Lstring-StrUnwind(i-1));
t(i)= t(i-1)+dt;
elseif (t(i)>0.1) && (Fband(i)>0)
i=i+1;
Dop = sqrt((px-0)^2+(py-0)^2);
Lstring = .2706;
Percentstretch = (BLstretch(i)/0.09)*100-100;
Fband = m*(Percentstretch)+b;
Fmotive = (Ra/Rw)*Fband;
Tot_VehicleMass = Mv+(Np*Mp);
Ffk = ukv*(gravity*Tot_VehicleMass);
Fnet = Fmotive - Ffk;
accel(i) = Fnet/Tot_VehicleMass;
Vel_car(i) = Vel_car(i-1)+accel*dt;
distance(i) = distance(i-1)+vel_car*dt;
StrUnwind(i)=distance(i-1)*(Ra/Rw);
BLstretch(i)=Dop-(Lstring-StrUnwind(i-1));
t(i)= t(i-1)+dt;
else
i=i+1;
Fband = 0;
Fmotive = (Ra/Rw)*0;
Tot_VehicleMass = Mv+(Np*Mp);
Ffs = usv*(gravity*Tot_VehicleMass);
Fnet = Fmotive - Ffs;
accel(i) = Fnet/Tot_VehicleMass;
Vel_car(i) = Vel_car(i-1)+accel*dt;
distance(i) = distance(i-1)+vel_car*dt;
t(i)= t(i-1)+dt;
end
end
end
Subscript indices must either be real positive integers or logicals. Error? The program must run until the car reaches a distance of 6.096 meters and we need to know the time it takes to do so.

Answers (1)

To start
  • rename i to ii because i, Imaginary unit
  • Add the line &nbsp ii = 1; &nbsp before &nbsp while distance(ii)< 6.096 &nbsp because otherwise &nbsp ii &nbsp is used before defined.
Next &nbsp Vel_car(ii) = Vel_car(ii-1)+accel*dt; &nbsp will throw an error.
&nbsp
The debugging tools of Matlab are good! Here are some links on debugging in Matlab

Asked:

on 8 Nov 2014

Edited:

on 9 Nov 2014

Community Treasure Hunt

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

Start Hunting!