# How to find set of 3 in a 122x4 matrix?

1 vue (au cours des 30 derniers jours)
John Hunt le 13 Oct 2017
Commenté : John Hunt le 17 Oct 2017
I have a matrix that is 122x4. These have index numbers 1-36 with two only rows containing three points that are common between them. How can I find these pairs?
ex
A=[ 1 2 13 15;
1 2 15 35;
1 2 17 22;
1 2 22 36...]
(there is not a pattern throughout the matrix like there are in the first couple rows) I want some thing that can identify the pair of combos
combos = [1 2;
3 4]
where 1,2,3,and 4 are row numbers
If I can also print out the numbers they share that would be great too combos = [1 2 1 2 15;...etc
##### 7 commentairesAfficher 6 commentaires plus anciensMasquer 6 commentaires plus anciens
John Hunt le 17 Oct 2017
three out of the four need to match three out of four for the other rows

Connectez-vous pour commenter.

### Réponses (1)

Guillaume le 17 Oct 2017
Modifié(e) : Guillaume le 17 Oct 2017
This is O(n^2) so is going to be slow for largish matrices. I haven't got the time to think of a cleverer algorithm:
pairs = zeros(0, 5);
for row1 = 1 : size(A, 1)
for row2 = row1+1 : size(A, 1)
commonnumbers = intersect(A(row1, :), A(row2, :));
if numel(commonnumbers ) == 3
pairs = [pairs; row1, row2, commonnumbers]; %#ok<AGROW>
break; %assumes that there is always only one other row that matches
end
end
end
##### 1 commentaireAfficher AucuneMasquer Aucune
John Hunt le 17 Oct 2017
Thank you I will go through it to see if I can get it to do what I need

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by