Converting a for loop to a while loop

I'm trying to convert this for loop into a while loop but keep getting the x value of the while loop as zero when it should be random values.

    % code
x=0; 
y=randi(100,1,5); 
for i = 1:5     
    x=x+y(i); 
end 

This is what I have:

    % code
 x=0;
 y=randi(100,1,5);
 while i<6 && i>0
     x=x+y(i);
    i=i+1;
 end

Not sure how to get the x value to 'work'

回答 (2 件)

madhan ravi
madhan ravi 2018 年 10 月 1 日
編集済み: madhan ravi 2018 年 10 月 1 日

1 投票

x=zeros(1,5);
y=randi(100,1,5);
i=1
while i<6
x(i)=x(i)+y(i)
i=i+1;
end

3 件のコメント

madhan ravi
madhan ravi 2018 年 10 月 11 日
@Samantha Farmer haven’t heard from you in a while
Samantha Farmer
Samantha Farmer 2018 年 10 月 11 日
I've been understanding my hw for a little bit :)
madhan ravi
madhan ravi 2018 年 10 月 12 日
Ok if it worked make sure to accept the answer as well :)

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

Jan
Jan 2018 年 10 月 1 日

0 投票

The problem is, that i has not been initialized before the while loop. Then i is defined as sqrt(-1). See madhan ravi's answer, where i=1 is defined before the loop.

カテゴリ

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

質問済み:

2018 年 10 月 1 日

コメント済み:

2018 年 10 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by