Find indices of one array in another array.

3 Ansichten (letzte 30 Tage)
Hampus Alfredsson
Hampus Alfredsson am 28 Mär. 2018
Bearbeitet: Stephen23 am 28 Mär. 2018
I have two different sized two column arrays, like the example below:
A = [1 1; 1 2; 2 2; 2 3; 3 3; 3 4; 4 3; 4 4];
B = [1 1; 2 2; 3 3; 4 4];
Now I want to find the indices of the rows in A that are equal to B. So the answer should be:
idx_rows = [1 3 5 8]
How can I do this?
Thanks!

Akzeptierte Antwort

Birdman
Birdman am 28 Mär. 2018
Bearbeitet: Birdman am 28 Mär. 2018
[~,idx]=setdiff(A,B,'rows');
idx_rows=setdiff(1:size(A,1),idx)

Weitere Antworten (1)

Stephen23
Stephen23 am 28 Mär. 2018
Bearbeitet: Stephen23 am 28 Mär. 2018
The simplest solution is to use ismember:
>> A = [1 1; 1 2; 2 2; 2 3; 3 3; 3 4; 4 3; 4 4];
>> B = [1 1; 2 2; 3 3; 4 4];
>> [~,idx] = ismember(B,A,'rows')
idx =
1
3
5
8

Kategorien

Mehr zu Matrix Indexing 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