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.

 Akzeptierte Antwort

darova
darova am 23 Feb. 2021

1 Stimme

2 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Gefragt:

am 23 Feb. 2021

Kommentiert:

am 24 Feb. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by