# Find max and min every n elements in a matrix, then plot with error bar together with mean value

6 views (last 30 days)
Hello i am reading a matrix with 2 columns. The first columns has a radius and the second column stores a value. there are n * m rows, where n is the number of groups and m is the number of elements in each group.
Example Matrix
A(:,2) = rand(110,1) % value
Now i want to find the average every m elements, in this case lets say 10 groups of 11 elements
B(:,1) = accumarray(ceil((1:numel(A(:,1)))/11)',A(:,1),[],@mean)% average of radii
B(:,2) = accumarray(ceil((1:numel(A(:,2)))/11)',A(:,2),[],@mean)% average of value
Now my 1. question: How can i efficiently find the max and min of each group?
Also later i plot array B like so:
plot(fig,B(:,1),B(:,2),'k-o')
and my 2. question: How can i add the min and max values as an error bar to the plot above? i.e.
|----o----|
Thanks a lot

Adam Danz on 13 Jan 2022
Edited: Adam Danz on 13 Jan 2022
How can i efficiently find the max and min of each group?
Hint: use the same accumarray function except replace mean with max or min.
How can i add the min and max values as an error bar
Use the errorbar function. errorbar(x,y,neg,pos) where neg and pos are the distance of the min,max from the mean. Give it a shot and if you get stuck, show us what you've got and we can help more.
Ángel Brito Gadeschi on 14 Jan 2022
It looked like a filled surface because i have way too many points (or my plot is too small, but it already covers the entire screen)

R2017a

### Community Treasure Hunt

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

Start Hunting!