summation using while loop until I get a certain value

5 views (last 30 days)
hello,I am asked to sum the elements of an array until I get a certain value. I used the while loop but when I run the code it says that index exceeds matrix dimensions. Here is my code,
A=[3 4 10 3 9 10 12 4 11 9 11 10];
sum=0;
k=1:length(A);
while sum<43
sum=sum+A(k);
k=k+1;
end
disp(sum);
disp(k);
what could be the problem with this code? thanks...
  1 Comment
Stephen23
Stephen23 on 15 Nov 2015
Edited: Stephen23 on 16 Nov 2015
Note that you should not call your variable sum, as this is the name of the inbuilt and very important function sum. When you define a variable/function named sum, it shadows the inbuilt function and stops it from working. This will break a lot of code!

Sign in to comment.

Answers (2)

Stephen23
Stephen23 on 15 Nov 2015
This is much easier without any loops:
>> N = 43;
>> A = [3,4,10,3,9,10,12,4,11,9,11,10];
>> B = cumsum(A);
>> C = B(B<N);
>> C(end)
ans =
39

Andrei Bobrov
Andrei Bobrov on 15 Nov 2015
A=[3 4 10 3 9 10 12 4 11 9 11 10];
sum1=0;
k=1;
while sum1<43
sum1=sum1+A(k);
k=k+1;
end
disp(sum1);
disp(k);
  2 Comments
Andrei Bobrov
Andrei Bobrov on 16 Nov 2015
A=[3 4 10 3 9 10 12 4 11 9 11 10];
sum1=0;
k=1;
s = [];
while sum1 < 43
s =sum1;
sum1=sum1+A(k);
k=k+1;
end
disp(s);
disp(k-1);

Sign in to comment.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!