Pull a conditional subset of a matrix

Hi guys I have a matrix and I want to pull a subset matrix but only with the numbers whose last digit is one. EX a= 00110, 01000, 01011, 01101. thus b= 01011, 01101

4 comentarios

madhan ravi
madhan ravi el 2 de Nov. de 2018
Editada: madhan ravi el 2 de Nov. de 2018
More explanation?
Andres Serrano
Andres Serrano el 2 de Nov. de 2018
thanks Madhan. I have a= 00110, 01000, 01011, 01101. I want to get b= 01011, 01101. Matrix b is all the vectors from matrix a whose last digit=1 (when the last digit of a vector in matrix a=0 the vector is not included in matrix b).
Walter Roberson
Walter Roberson el 2 de Nov. de 2018
Are the entries for the first row '00110' which is to say characters? Are they [0 0 1 1 0] which is to say distinct decimal numbers? Are they 00110 decimal, which would show up as 110, decimal one hundred and ten?
Andres Serrano
Andres Serrano el 2 de Nov. de 2018
Hi Walter, you are correct, they are characters. '00110' is the first row. '01000' second row, etc...

Iniciar sesión para comentar.

Respuestas (2)

Walter Roberson
Walter Roberson el 2 de Nov. de 2018
a(a(:,end)=='1',:)

2 comentarios

Andres Serrano
Andres Serrano el 2 de Nov. de 2018
thanks Walter i figured out the line based in your answer. a(a(:,5)==1,:)
Walter Roberson
Walter Roberson el 2 de Nov. de 2018
You said the entries were characters, and '1' will not == to 1 .
You also specifically wanted the last digit, but if your array were wider than 5 digits then a(:,5) would not be the last digit.
If your values are numeric instead of character, then a(a(:,end)==1,:)

Iniciar sesión para comentar.

Fulden Buyukozturk
Fulden Buyukozturk el 2 de Nov. de 2018
If a is a matrix of characters, you can do:
a= ['00110'; '01000'; '01011'; '01101'];
i = strfind(a(:,end)', '1');
b = a(i,:);

Categorías

Preguntada:

el 2 de Nov. de 2018

Comentada:

el 2 de Nov. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by