summation using while loop until I get a certain value

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

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)

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
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

k=k+1 must be above the sum1 equation.. thanks:)
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 Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 15 Nov 2015

Commented:

on 16 Nov 2015

Community Treasure Hunt

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

Start Hunting!