Could anyone help me how to extract different specific number of rows in a matrix.

I am a matrix of size A= rand(100,1)
I want to generate matrix by extracting 2 rows in interval of 5.
B=A([1:2,6:7,11:12,16:17,........,96:97],:).
Could anyone help me to write in the simplified form to execute in matlab.

Answers (2)

row_idx = reshape((1:5:100) + [0;1],1,[])
row_idx = 1×40
1 2 6 7 11 12 16 17 21 22 26 27 31 32 36 37 41 42 46 47 51 52 56 57 61 62 66 67 71 72

3 Comments

ok. In addition i want to extract the values of the row_idx in a separate matrix. Could you help me on this.
?? row_idx is already a separate matrix. You take it and
B = A(row_idx,:);
For 2, 3, 4 of each group of 5,
row_idx = reshape((1:5:100) + [1;2;3],1,[])

Sign in to comment.

B = A(sort([1:5:100 2:5:100]))

2 Comments

If suppose instead of two rows I need to have value of 2,3,4 in each intervals of 5. In that case the above command doesnt executes. could you help me on this.

Sign in to comment.

Categories

Asked:

on 25 Jun 2021

Commented:

on 25 Jun 2021

Community Treasure Hunt

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

Start Hunting!