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

1 visualizzazione (ultimi 30 giorni)
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!

Risposte (1)

aborghes
aborghes il 19 Giu 2017
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 Commento
Xiaochen Sun
Xiaochen Sun il 19 Giu 2017
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!

Accedi per commentare.

Categorie

Scopri di più su Performance and Memory in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by