Index into a table using a vector of values

4 ビュー (過去 30 日間)
Isabel Chen
Isabel Chen 2016 年 4 月 5 日
コメント済み: Isabel Chen 2016 年 4 月 5 日
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?

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 5 日
編集済み: Azzi Abdelmalek 2016 年 4 月 5 日
A=[5 1;7 3;12 4;47 4;6 4]
out=A(ismember(A(:,2),[1 3 4]),:)
  1 件のコメント
Isabel Chen
Isabel Chen 2016 年 4 月 5 日
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,:);

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by