Deleting Triangulation Entries from a Delaunay Triangulation Based on Indices Given by a Logical Array
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alessandro
am 8 Mai 2014
Kommentiert: Alessandro
am 8 Mai 2014
Hello,
I am using Delaunay Triangulations to map a 3D space. Given certain criteria, I select a certain number of points to be removed both from my coordinates vector and the triangulation matrix. I am using a logical array to define the coordinates vector indices to remove, now I want to use that directly to detect which rows of the triangulation contain those indices and delete them. A little example:
A = [1 2 3;4 5 6;7 8 9;10 11 12]; % Coordinate Matrix
bound = [5 3 3]; % Spatial Bounds
ids = bound(1,1) <= A(:,1) & bound(1,2) <= A(:,2) & bound(1,3) <= A(:,3); % logical operator
This code gives
ids = [0 0 1 1]
This means I can delete the coordinates not satistying my boundaries with
A(ids,:) = [];
But how can I search for the indices 3 and 4 (the one resulting from the logical operation) inside a big Triangulation matrix (of size n*4) and delete every row containing one of those indices? I obviously only care about rows.
Thanks
2 Kommentare
the cyclist
am 8 Mai 2014
Are you saying that if
T = [1 2 6 7; 1 3 6 7; 1 4 6 7; 1 5 6 7];
you want to remove the second and third rows, because they contain the numbers 3 or 4?
Akzeptierte Antwort
the cyclist
am 8 Mai 2014
If my comment above is a correct interpretation of what you want, then this code will do it:
T(any(ismember(T,find(ids)),2),:) = [];
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Delaunay Triangulation 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!