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.

3 ビュー (過去 30 日間)
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 件のコメント
Sattik Basu
Sattik Basu 2017 年 8 月 19 日
編集済み: Walter Roberson 2017 年 8 月 20 日
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?

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2017 年 8 月 20 日
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.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by