Retrieving minimum values for parts of a matrix
1 view (last 30 days)
Show older comments
Hi, I have a matrix containing different rows with values for several years. I need to retrieve the minimum value corresponding to each year. For example: A=[ 1958 2; 1958 3; 1959 4; 1959 5; 1959 6 ] The result matrix that I need would be: B=[ 1958 2; 1959 4 ]
Could you please help with this? Thanks
0 Comments
Accepted Answer
Azzi Abdelmalek
on 17 May 2016
Edited: Azzi Abdelmalek
on 17 May 2016
A=[ 1958 2; 1958 3; 1959 4; 1959 5; 1959 6 ]
[ii,jj,kk]=unique(A(:,1))
out=[ii accumarray(kk,(1:numel(kk))',[],@(x) min(A(x,2)))]
0 Comments
More Answers (1)
Matt J
on 17 May 2016
Edited: Matt J
on 17 May 2016
[i,~,s]=find( accumarray(A(:,1), A(:,2),[],@min ) );
B=[i,s]
See Also
Categories
Find more on Develop Apps Using App Designer in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!