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 Kommentare

madhan ravi
madhan ravi am 2 Nov. 2018
Bearbeitet: madhan ravi am 2 Nov. 2018
More explanation?
Andres Serrano
Andres Serrano am 2 Nov. 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 am 2 Nov. 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 am 2 Nov. 2018
Hi Walter, you are correct, they are characters. '00110' is the first row. '01000' second row, etc...

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Walter Roberson
Walter Roberson am 2 Nov. 2018

0 Stimmen

a(a(:,end)=='1',:)

2 Kommentare

Andres Serrano
Andres Serrano am 2 Nov. 2018
thanks Walter i figured out the line based in your answer. a(a(:,5)==1,:)
Walter Roberson
Walter Roberson am 2 Nov. 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,:)

Melden Sie sich an, um zu kommentieren.

Fulden Buyukozturk
Fulden Buyukozturk am 2 Nov. 2018

0 Stimmen

If a is a matrix of characters, you can do:
a= ['00110'; '01000'; '01011'; '01101'];
i = strfind(a(:,end)', '1');
b = a(i,:);

Kategorien

Gefragt:

am 2 Nov. 2018

Kommentiert:

am 2 Nov. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by