make a cluster from scatter point

Hi
I have attached my scatter poit figure and I want to make a 2 or 3 clusters from them.
This is my code;
for i = 1:size(MeanEchos,1);
for j = 1:size(MeanEchos,2);
scatter(blob_area{2,j},MeanEchos{2,j},'x');
set(gca,'xscale','log');
grid on;
xlabel('Blob Area');
ylabel('Mean Echo Intensity');
xlim([0 10^5]);
ylim([0 5])
end
end
I would be greateful if anyone would be able to help me.
Thanks in advance

 Accepted Answer

Ameer Hamza
Ameer Hamza on 17 Oct 2020
If you have statistical and machine learning toolbox, then try kmeans(): https://www.mathworks.com/help/releases/R2020b/stats/kmeans.html

7 Comments

Thanks! how I can make 1 array from these two double cell array blob_area{2,j} and MeanEchos{2,j}?
because when I want to use kmeans, it needs to be one array.
blob area here is x of my figure and means echos is y.
I think following should work
x1 = [blob_area{2,:}].';
x2 = [MeanEchos{2,:}].';
X = [x1 x2];
Input X to kmeans(). If there is an error, can you attach the variables blob_area and MeanEchos in a .mat file.
Thanks so much for your respond. I do really appreciate it.
With the new code that you ahve sent, I am receiving an error of 'Vectors must be the same length.'
I have attached my data here. Baically as you can see in the screen shot od scatter point, the first distribution needs to be cluster #1 and second distribution needs to be cluster #2.
These lines wok without error on my machine. How are you typing these lines?
Yes you are right. I used your code and thanks so much for that.
However, I want to make sure that I am receieving the right resualt.
My all lines are stated as bellow;
x1 = [blob_area{3,:}].';
x2 = [MeanEchos{3,:}].';
X = [x1 x2];
opts = statset('Display','final');
[idx,C] = kmeans(X,2,'Distance','cityblock',...
'Replicates',255,'MaxIter',1000,'Options',opts);
figure;
plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(C(:,1),C(:,2),'kx','MarkerSize',15,'LineWidth',3)
legend('Cluster 1','Cluster 2','Centroids',...
'Location','NW')
title 'Cluster Assignments and Centroids'
hold off
I attached the figure as well. based on the initial figure, is my result right?
Also, thanks so much for all your help, with that 2 lines I got my answer after 2 days working.
From the images, it seems that the results are correct. It clearly shows two clusters. I am glad to be of help!
Great. Thanks a lot!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!