Cluster 3D data

15 vues (au cours des 30 derniers jours)
Amarbold Purev
Amarbold Purev le 23 Fév 2021
Commenté : darova le 24 Fév 2021
Hello,
I have a combined X Y Z camera coordinates and I want to cluster them into 2 groups.
I have tried the following code:
n = length(camLoc);
cam_A = NaN(n,3);
cam_B = NaN(n,3);
idx = kmeans(camLoc,2, 'Distance', 'cityblock', 'Start', 'uniform', 'Replicates',5);
for i = 1:n
if idx(i) == 1
cam_A(i,:) = camLoc(i,:);
else
cam_B(i,:) = camLoc(i,:);
end
end
cam_A(any(isnan(cam_A), 2), :) = [];
cam_B(any(isnan(cam_B), 2), :) = [];
scatter3(cam_A(:,1),cam_A(:,2),cam_A(:,3),'r');
hold on
scatter3(cam_B(:,1),cam_B(:,2),cam_B(:,3),'b');
and the results is shown below.
However, I want to cluster not vertically but horizontally. In other words, I want the data, that it would look like a 2 long noodles.
Thanks in advance.

Réponse acceptée

darova
darova le 23 Fév 2021
  2 commentaires
Amarbold Purev
Amarbold Purev le 24 Fév 2021
Thank you @darova it really helped.
Simple clusterdata worked like a charm.
idx = clusterdata(camLoc,2);
darova
darova le 24 Fév 2021

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by