If loop not acting properly??

Hello, just looking for some quick help. How come when I execute this code, the only value for which .003 shows up is the 101st iteration of i?
for i = 1:101
if (i>=84)
a = .003;
elseif (i<84) && (i>=38)
a = 0;
elseif (i<38)
a = -.0065;
end
end
temp_si(i) = a

 採用された回答

Fangjun Jiang
Fangjun Jiang 2019 年 1 月 22 日

1 投票

move the last line inside the for-loop.

3 件のコメント

Jake
Jake 2019 年 1 月 22 日
Thank you!
Fangjun Jiang
Fangjun Jiang 2019 年 1 月 22 日
And add temp_si=zeros(1,101) before the for-loop to pre-allocate memory.
Jan
Jan 2019 年 1 月 22 日
編集済み: Jan 2019 年 1 月 22 日
So either:
temp_si = zeros(1, 101);
for i = 1:101
if (i>=84)
a = .003;
elseif (i<84) && (i>=38)
a = 0;
elseif (i<38)
a = -.0065;
end
temp_si(i) = a
end
or:
temp_si = zeros(1, 101);
temp_si(1:37) = -0.0065;
temp_si(84:101) = 0.003;
Of course I prefer the latter.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

製品

リリース

R2018a

質問済み:

2019 年 1 月 22 日

編集済み:

Jan
2019 年 1 月 22 日

Community Treasure Hunt

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

Start Hunting!

Translated by