Find common rows between two matrices with different number of columns

조회 수: 1 (최근 30일)
I have two matrices A and B.
A = [1 2 3; 4 5 6; 7 8 9]
A = 3×3
1 2 3 4 5 6 7 8 9
B = [1 3 20 2; 1 2 3 55; 7 8 9 10; 88 2 1 5]
B = 4×4
1 3 20 2 1 2 3 55 7 8 9 10 88 2 1 5
and I need to extract the rows in B matrix with common elements in A matrix, row by row.
The result shall be like that:
common_rows = [1 3 20 2; 1 2 3 55; 7 8 9 10]
common_rows = 3×4
1 3 20 2 1 2 3 55 7 8 9 10
Thanks.

채택된 답변

Dyuman Joshi
Dyuman Joshi 2024년 1월 30일
A = [1 2 3; 4 5 6; 7 8 9];
B = [1 3 20 2; 1 2 3 55; 7 8 9 10; 88 2 1 5];
%Indices of rows in B
idx = 1:size(B,1);
for k=idx
%If elements in a row of B are not common with all elements of any row
%in A, remove that row index
if ~any(all(ismember(A, B(k,:)),2))
idx = setdiff(idx, k);
end
end
idx
idx = 1×3
1 2 3
C = B(idx, :)
C = 3×4
1 3 20 2 1 2 3 55 7 8 9 10

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Computational Geometry에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by