Cluster 3D data

6 visualizzazioni (ultimi 30 giorni)
Amarbold Purev
Amarbold Purev il 23 Feb 2021
Commentato: darova il 24 Feb 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.

Risposta accettata

darova
darova il 23 Feb 2021
  2 Commenti
Amarbold Purev
Amarbold Purev il 24 Feb 2021
Thank you @darova it really helped.
Simple clusterdata worked like a charm.
idx = clusterdata(camLoc,2);
darova
darova il 24 Feb 2021

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by