find rows of two matricies (of different sizes) based on matching element of one column

2 ビュー (過去 30 日間)
Adam
Adam 2015 年 11 月 10 日
コメント済み: Adam 2015 年 11 月 10 日
Given two matrices A[1000x4] and B[500x4] what is the fastest way in MATLAB to extract the complete rows of A which share the same element values in column 4 as B does?
for example if,
A=[1 2 3 7;
2 6 9 1;
8 3 4 8] and
B=[9 2 5 1;
6 2 1 5;
3 6 6 8].
What is the most efficient way to create a new array
C=[2 6 9 1;
8 3 4 8],
having the rows of A with same element in column 4 as B does?
Thanks!

採用された回答

Image Analyst
Image Analyst 2015 年 11 月 10 日
Try ismember():
A=[1 2 3 7;
2 6 9 1;
8 3 4 8]
B=[9 2 5 1;
6 2 1 5;
3 6 6 8]
[ia, ib] = ismember(A(:,4), B(:, 4))
C = A(find(ib),:)

その他の回答 (1 件)

James Tursa
James Tursa 2015 年 11 月 10 日
Caution, untested:
k = ismember(A(:,4),B(:,4));
C = A(k,:);

カテゴリ

Help Center および File ExchangeShifting and Sorting Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by