Finding values in a matrix with logical operation

1 view (last 30 days)
Hi
I know how to show for a Matrix A the values in the first column which fullfill a certain condition. Say:
A =
8 1 6
3 5 7
4 9 2
Then I could use for displaying all the values bigger then 3 in the first column the following line:
A(A(:,1) > 3)
But what line do I use, if I want to display the values in the second column which are bigger than say "3"?
Thanks
  1 Comment
Matt J
Matt J on 9 Jan 2013
Edited: Matt J on 9 Jan 2013
Then I could use for displaying all the values bigger then 3 in the first column the following line: A(A(:,1) > 3)
While this would work in the case of the first column, it is cleaner to specify the column number explicitly not just in the indexing expression, but also in the look-up expression
A(A(:,1) > 3, 1 )
It's also easier to see how to generalize it to other columns, as Jan has showed you.

Sign in to comment.

Accepted Answer

Jan
Jan on 9 Jan 2013
Edited: Jan on 9 Jan 2013
A strange question. What about replacing the column index 1 by 2?
A(A(:, 2) > 3, 2)
Explicitly:
v = A(:, 2);
v(v > 3)
  1 Comment
MiauMiau
MiauMiau on 9 Jan 2013
sorry for the strange question. I was not aware that it is possible to use booleans in that way, since A(:,2) > 3 in our case returns a boolean 3,1-Matrix, whereas the index for the column is just the 1,1 matrix "2". That's not so obvious to come up with for a beginner.

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!