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

1 visualización (últimos 30 días)
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.

Respuestas (2)

Walter Roberson
Walter Roberson el 25 de Jun. de 2021
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 comentarios
Walter Roberson
Walter Roberson el 25 de Jun. de 2021
?? row_idx is already a separate matrix. You take it and
B = A(row_idx,:);
Walter Roberson
Walter Roberson el 25 de Jun. de 2021
For 2, 3, 4 of each group of 5,
row_idx = reshape((1:5:100) + [1;2;3],1,[])

Iniciar sesión para comentar.


Scott MacKenzie
Scott MacKenzie el 25 de Jun. de 2021
B = A(sort([1:5:100 2:5:100]))
  2 comentarios
jaah navi
jaah navi el 25 de Jun. de 2021
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.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by