ho to find index at which the 50% of the sum vector is included?
1 view (last 30 days)
Show older comments
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
Answers (2)
Star Strider
on 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)
.
3 Comments
Steven Lord
on 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)
suma50 = suma(end)/2
[~, location] = find(suma > suma50, 1, 'first')
suma([location-1 location])
Image Analyst
on 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)
c = cumsum(a)
[minDiff, index] = min(abs(c - s/2))
(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.)
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!