How to extract matrix value given condition on another column
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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.
0 commentaires
Réponses (1)
Cam Salzberger
le 5 Sep 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 commentaire
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!