Filter löschen
Filter löschen

Index into a table using a vector of values

1 Ansicht (letzte 30 Tage)
Isabel Chen
Isabel Chen am 5 Apr. 2016
Kommentiert: Isabel Chen am 5 Apr. 2016
Suppose I have a table:
T =
var1 var2
a 1
b 2
c 2
d 3
e 4
f 4
g 4
and I am interested in the rows of T where var2 takes values 1, 3, or 4. Is there a direct way to subset into the table using the vector [1; 3; 4], instead of using a for-loop? To be clear, I am interested in obtaining the following output:
subT =
var1 var2
a 1
d 3
e 4
f 4
g 4
I don't see how I can get this using a logical expression. Any thoughts?

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 5 Apr. 2016
Bearbeitet: Azzi Abdelmalek am 5 Apr. 2016
A=[5 1;7 3;12 4;47 4;6 4]
out=A(ismember(A(:,2),[1 3 4]),:)
  1 Kommentar
Isabel Chen
Isabel Chen am 5 Apr. 2016
Thanks Azzi, that makes sense! Your code is written for arrays -- for tables, I would do something like this:
vec = [1; 3; 4];
rows = ismember(T.var2, vec);
subT = T(rows,:);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by