ho to find index at which the 50% of the sum vector is included?

1 Ansicht (letzte 30 Tage)
benghenia aek
benghenia aek am 26 Nov. 2021
Beantwortet: Image Analyst am 27 Nov. 2021
ho to find index at which the 50% of the sum vector is included?
a=[3 5 7 3 5 8 9 3 1 41 6];
sum(a)=91
50% of sum signal =45.5
indice which is approximately equal to of sum of 50% of sum signal a is 9

Antworten (2)

Star Strider
Star Strider am 26 Nov. 2021
A least-squared-difference approach works —
a=[3 5 7 3 5 8 9 3 1 41 6];
suma = cumsum(a);
suma50 = suma(end)/2;
[minv,idxv] = min((suma50-suma).^2)
minv = 2.2500
idxv = 9
.
  3 Kommentare
Star Strider
Star Strider am 26 Nov. 2021
My pleasure!
If my Answer helped you solve your problem, please Accept it!
.
Steven Lord
Steven Lord am 26 Nov. 2021
If you want the first index that's past the halfway point:
a=[3 5 7 3 5 8 9 3 1 41 6];
suma = cumsum(a)
suma = 1×11
3 8 15 18 23 31 40 43 44 85 91
suma50 = suma(end)/2
suma50 = 45.5000
[~, location] = find(suma > suma50, 1, 'first')
location = 10
suma([location-1 location])
ans = 1×2
44 85

Melden Sie sich an, um zu kommentieren.


Image Analyst
Image Analyst am 27 Nov. 2021
Isn't this a duplicate?
If it's not your homework, you can use my solution:
a = [3 5 7 3 5 8 9 3 1 41 6];
s = sum(a)
s = 91
c = cumsum(a)
c = 1×11
3 8 15 18 23 31 40 43 44 85 91
[minDiff, index] = min(abs(c - s/2))
minDiff = 1.5000
index = 9
(If it is your homework, tag it as homework and find a different way. Don't turn in any of our solutions as your own or you may get caught for cheating.)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by