How to extract matrix from a bigger matrix based on threshold of each column?

1 visualización (últimos 30 días)
I have a nX3 matrix. I need to extract a matrix such that all rows crossing the threshold of each column are selected. Threshold can be assumed to be 100(column 1),200(column2) and 300(column 3 )? Please help...

Respuesta aceptada

Philippe Lebel
Philippe Lebel el 2 de Dic. de 2019
Editada: Philippe Lebel el 2 de Dic. de 2019
here is my try based on what i understood.
given a matrix a nx3:
a = [5,6,8;1,2,3;2,3,4;3,4,5;4,5,6]
a =
5 6 8
1 2 3
2 3 4
3 4 5
4 5 6
% the threshold on column 1 is 2
a_1 = a(a(:,1)>2,:)
a_1 =
5 6 8
3 4 5
4 5 6
% the treshold on column 2 is 4
a_2 = a_1(a_1(:,2)>4,:)
a_2 =
5 6 8
4 5 6
%the treshold on column 3 is 6
a_3 = a_2(a_2(:,3)>6,:)
a_3 =
5 6 8
a_3 is the matrix containing the row(s) that satisfy all tresholds.
A one-liner can be made for this operation:
a_tresh = a((a(:,1)>2)&(a(:,2)>4)&(a(:,3)>6),:)
a_tresh =
5 6 8
  4 comentarios
Philippe Lebel
Philippe Lebel el 2 de Dic. de 2019
nice one, I forgot about all()
thanks for the input
Adam Danz
Adam Danz el 2 de Dic. de 2019
Editada: Adam Danz el 2 de Dic. de 2019
Nice job interpreting the question. I wouldn't have guessed. Too many times I guessed on other questions, spent time writing out the solution, and then found that my interpretation wasn't correct.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Multidimensional Arrays 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