Filter löschen
Filter löschen

How to select rows in a matrix based on the values in another matrix?

17 Ansichten (letzte 30 Tage)
Hi,
I have a matrix A and a matrix B:
-------- A ------- ---------- B ---------
201918 4.5 201908 7 2.1
201917 4.1 201918 8 0.3
201821 -7.1 201917 9 0.1
201718 0.2 201916 9 2
201903 6 18.1
201718 0 1.9
I need to intersect their first columns in order to find matching values within B, thus obtaining a matrix C:
---------- C --------
201918 8 0.3
201917 9 0.1
201718 0 1.9
By using the function intersect(A(:,1), B(:,1)) I get the first column of C but how do I get the corresponding values of the other rows in B?

Akzeptierte Antwort

David Hill
David Hill am 27 Apr. 2022
C=B(ismember(B(:,1),A(:,1)),:);

Weitere Antworten (1)

Jonas
Jonas am 27 Apr. 2022
use
[~,ia,ib])=intersect(A(:,1), B(:,1));
A(ia,:)
B(ib,:)

Kategorien

Mehr zu Descriptive Statistics finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by