
Locate two neighboring nodes in space so as to divide the matrix into two
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alberto Acri
am 24 Feb. 2024
Kommentiert: Matt J
am 24 Feb. 2024
I have the coordinates of nodes arranged in space in the shape of 8.
Is there a way to locate the nearest points as marked in the two figures (circled in red)? note: the figures are an example
I need to locate the two nodes to "separate" the coordinates of the nodes in matrix A and matrix B.
plane_new = importdata("plane_new_2_30_jj2.mat");
% OR
plane_new = importdata("plane_new_3_31_jj2.mat");
figure
plot3(plane_new(:,1),plane_new(:,2),plane_new(:,3),'k.','Markersize',20);
axis equal
grid off


3 Kommentare
Akzeptierte Antwort
Matt J
am 24 Feb. 2024
Bearbeitet: Matt J
am 24 Feb. 2024
load xydata xy %Original 3D data mapped to 2D
xy=xy(tspsearch(xy,5),:); %tspsearch is on the file exchange
P=polyshape(xy,'Simplify',0);
pc=regions(rmslivers(subtract( convhull(P) , P),1/100));
[~,is]=maxk(area(pc),2); pc=pc(is);
neck=getNearest(pc(1),pc(2)); %The two points
plot(P); axis equal
hold on
scatter(neck(:,1), neck(:,2),'or','filled')
hold off
function V=getNearest(p1,p2)
ID=nearestvertex(p1,p2.Vertices);
Dist=vecnorm(p1.Vertices(ID,:)-p2.Vertices,2,2);
[~,j]=min(Dist);
V=[p1.Vertices(ID(j),:);p2.Vertices(j,:)];
end
2 Kommentare
Walter Roberson
am 24 Feb. 2024
regionprops() MinFeretProperties is another potential way to find the distances.
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
