How to extract matrix value given condition on another column

1 visualización (últimos 30 días)
Jesutoyosi Awoyeye
Jesutoyosi Awoyeye el 5 de Sept. de 2017
Editada: Jesutoyosi Awoyeye el 5 de Sept. de 2017
So i have a matrix: [1 2 3 4; 5 6 7 8; 1 0 1 1]
The condition is that the third column must equal one. Then I take that corresponding row to extract the value from column 2.
So i need a code that extracts 5, 7, and 8 into a separate matrix.

Respuestas (1)

Cam Salzberger
Cam Salzberger el 5 de Sept. de 2017
Hello Jesutoyosi,
Based on your example matrix, I believe you meant that you want to extract from row 2 every value that is a 1 in row 3.
In that case, logical indexing is your best friend.
whichCols = oldMat(3,:) == 1;
newMat = oldMat(2,whichCols);
Or, because 1 is able to be converted to true, and 0 to false, you can just do this:
newMat = oldMat(2, logical(oldMat(3,:)));
-Cam
  1 comentario
Jesutoyosi Awoyeye
Jesutoyosi Awoyeye el 5 de Sept. de 2017
Editada: Jesutoyosi Awoyeye el 5 de Sept. de 2017
Will this same code apply to all dimensions? The dimension of the matrix that I am dealing with is 195x6. I am extracting values from column 4 given that the values in column 6 is 1.

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices 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