How to extract matrix value given condition on another column
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Cam Salzberger
2017-9-5
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!