How to delete max values for every 5 rows
Show older comments
I want to delete the max value for column 1 for every 5 rows with idx column 2
The matrix
A =
1 1
2 2
6 3
12 2
4 5
9 6
14 1
5 1
6 9
8 10
11 11
12 3
9 13
4 6
10 15
the result will be
1 1
2 2
6 3
4 5
9 6
5 1
6 9
8 10
11 11
9 13
4 6
10 15
Answers (1)
A = [
1 1
2 2
6 3
12 2
4 5
9 6
14 1
5 1
6 9
8 10
11 11
12 3
9 13
4 6
10 15];
% group size
n = 5;
% index of max value, within each group of n (5)
[~,idx] = max(reshape(A(:,1),n,[]),[],1)
% convert to index in A
rows_to_delete = (0:numel(idx)-1)*n+idx
% delete the rows of A
A(rows_to_delete,:) = []
Categories
Find more on Logical in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!