Find the rows have two same elements from a matrix

1 visualización (últimos 30 días)
Jiafeng Ye
Jiafeng Ye el 11 de Dic. de 2022
Comentada: Torsten el 11 de Dic. de 2022
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
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

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by