Find the rows have two same elements from a matrix

I have a matrix (each row represents a traingle and each element represents a vertex ID of that traingle), I want to find which two traingles have two same vertices. This question can be demonstrated by the following example, for a matrix like the following:
1 9 8
2 7 8
5 8 9
6 5 4
7 3 8
5 4 8
the output would be [1, 3], [2, 5], and [3, 6], which are the rows have two same elements.

3 comentarios

What does each row and each column represent? Are you having triangles in 3-D, like (x, y, z)?
This looks like a homework problem. If you have any questions ask your instructor or read the link below to get started:
Obviously we can't give you the full solution because you're not allowed to turn in our code as your own.
Jiafeng Ye
Jiafeng Ye el 11 de Dic. de 2022
This is not a homework question but a research one.
Each row represents a trainlge (consists of three vertices).
Torsten
Torsten el 11 de Dic. de 2022
A research is no homework ? Then you don't work at home for your research ?

Iniciar sesión para comentar.

 Respuesta aceptada

Torsten
Torsten el 11 de Dic. de 2022
Editada: Torsten el 11 de Dic. de 2022
A = [1 9 8
2 7 8
5 8 9
6 5 4
7 3 8
5 4 8];
[I,J] = meshgrid(1:size(A,1),1:size(A,1));
[rows cols] = find(arrayfun(@(i,j)numel(intersect(A(i,:),A(j,:))),I,J)==2);
tuples = [rows(rows < cols),cols(rows < cols)]
tuples = 4×2
1 3 2 5 3 6 4 6

Más respuestas (1)

Matt J
Matt J el 11 de Dic. de 2022
Editada: Matt J el 11 de Dic. de 2022
Use edges to get a list of all the edges of the triangulation. Then loop over the list and use edgeAttachments.

Categorías

Productos

Versión

R2022b

Etiquetas

Preguntada:

el 11 de Dic. de 2022

Comentada:

el 11 de Dic. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by