Count values in an array if the sum of the values exceeds a certain number

I am a beginner in MATLAB. I have an array of [0.55, 0.4, 0.55], and I would like to count the how many values should be included to exceed a certain number (0.9 for example).
x= 0.5500
0.4000
0.0500
I would like the output to be:
y= 2
Because the sum of the first two values are already greater than 0.9, there is no need to include the third number.
This is the situation of three numbers, I would also want to see how this can work for a list of more than three values.
Thanks!

답변 (1개)

probably not the most elegant, but this seems to work:
x = [.55, .4, .05, .5, .9]
num = 0
val = .9
for y=1:length(x)
if(num<val)
num = num+x(i)
else
y = y-1;
break
end
end
y
the value of why at the end will give you the result you are looking for

댓글 수: 1

Thanks! I finally find a way to do this...
x = [.55, .4, .05, .5, .9]
x=sort(x,'descend')
cumx=cumsum(x)
n=find(cumx>=0.9,1)
This works for me now. But thank you for your reply!

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2017년 6월 19일

댓글:

2017년 6월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by