I am getting the following error for the below code: Subscript indices must either be real positive integers or logicals. How can i remove that error.

1 Ansicht (letzte 30 Tage)
clc
clear all
g=9.81;
u=10;
t=0:.1:10;
y(1)=0;
while (y(t)>=0)
y(t)=(u*t)-(0.5*g*t.*t)
end
  1 Kommentar
Sattik Basu
Sattik Basu am 19 Aug. 2017
Bearbeitet: Walter Roberson am 20 Aug. 2017
i found a different solution to this:
g=9.81;
u=100;
t=0;
y=0;
while (y>=0)
disp(['at t=', num2str(t) ', the height is=', num2str(y)])
t=t+0.1;
y=(u*t)-(0.5*g*t^2);
end
why does this work and not the first one?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 20 Aug. 2017
You have
t=0:.1:10;
so t is a vector containing 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
You have
while (y(t)>=0)
but t is the vector discussed above, so your line is equivalent to asking
while y([0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) >= 0
However, this attempts to subscript y with 0 and non-integers.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by