Bonjour,
J'ai trouvé des solutions proches de mon problème mais pas exactement ce que je veux alors voilà :
A la base j'ai une matrice A de taille n*4 qui représente des coordonnées de points en 3D et la quatrième colonne représente l'étiquetage du point.
De cette matrice j'ai extrait les points dont la coordonnée en y se trouve dans un certain intervalle. J'obtiens une nouvelle matrice A2.
Pour cette matrice, j'en ai une autre associée, la matrice B qui représente les faces (c'est un maillage en fait). C'est une matrice de dimension p*3. Dans cette matrice sur chaque ligne 3 étiquettes de points qui représente une face (un triangle).
Après avoir obtenu A2, il y a donc des numéros de points dans B qui n'apparaissent plus. J'aimerai donc trouvé ces numéros et supprimer la ligne dans laquelle ils apparaissent.
Pour l'instant voici mon code mais il ne fonctionne pas (avec A2 = CSVreg et B = f, je n'ai pas mis la phase d'extraction de A à A2 pq je n'ai pas de problème là dessus) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 vertex = CSVreg(:,4) ; [v,f] = stlread('10_FemurD.stl'); for i = 1 : size(f,1) [row1,col] = find( f(i,1) == vertex ); [row2,col] = find( f(i,2) == vertex ); [row3,col] = find( f(i,3) == vertex ); end row = [row1',row2',row3']; row = unique(row) ; f(row,:) = [] ;
Une idée de quoi changer pour que cela fonctionne?
Je vous remercie par avance
Partager