用matlab写k-means聚类算法
时间: 2023-09-30 22:09:22 浏览: 167
1_k-meansMATLAB聚类算法_
以下是用Matlab实现k-means聚类算法的示例代码:
% 生成数据集
rng(1);
data = [randn(100,2)*0.75+ones(100,2);
randn(100,2)*0.5-ones(100,2)];
% 初始化聚类中心
k = 2;
centroids = data(randperm(size(data,1),k),:);
% 迭代聚类
for iter = 1:10
% 计算每个点所属的聚类
[~,cluster] = min(pdist2(data,centroids,'euclidean'),[],2);
% 更新聚类中心
for i = 1:k
centroids(i,:) = mean(data(cluster==i,:),1);
end
end
% 绘制结果
figure;
scatter(data(cluster==1,1),data(cluster==1,2),'r');
hold on;
scatter(data(cluster==2,1),data(cluster==2,2),'b');
scatter(centroids(:,1),centroids(:,2),'kx');
legend('Cluster 1','Cluster 2','Centroids');
title('K-means Clustering');
阅读全文