Finding values in a matrix with logical operation

1 visualización (últimos 30 días)
MiauMiau
MiauMiau el 9 de En. de 2013
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 comentario
Matt J
Matt J el 9 de En. de 2013
Editada: Matt J el 9 de En. de 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.

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 9 de En. de 2013
Editada: Jan el 9 de En. de 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 comentario
MiauMiau
MiauMiau el 9 de En. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by