# Select only determined rows in a matrix

1 view (last 30 days)
Emilio Pulli on 28 Nov 2021
Commented: Emilio Pulli on 28 Nov 2021
I have a matrix composed of 200 rows and I want to copy in another matrix one every 10 rows obtaining a final matrix of 20 rows...is there a smart way to do it or do I have to use a for loop to index the orws I want to copy?

the cyclist on 28 Nov 2021
% First matrix
A = rand(200,2);
% New matrix
B = A(10:10:end,:); % This will start with the 10th row. You could do B = A(1:10:end,:) to start with the first row.
Emilio Pulli on 28 Nov 2021
Thanks man!

DGM on 28 Nov 2021
Something like this. You'll have to adjust the starting index as needed:
A = repmat((1:100).',[1 4]) % smaller example (100x4)
A = 100×4
1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7 7 8 8 8 8 9 9 9 9 10 10 10 10
B = A(10:10:end,:)
B = 10×4
10 10 10 10 20 20 20 20 30 30 30 30 40 40 40 40 50 50 50 50 60 60 60 60 70 70 70 70 80 80 80 80 90 90 90 90 100 100 100 100
Emilio Pulli on 28 Nov 2021
Thank you!