请给我一份matlab的K-means代码
时间: 2024-05-03 17:22:25 浏览: 43
【老生谈算法】K-means算法matlab是实现.docx
5星 · 资源好评率100%
以下是一个简单的 Matlab K-means 代码:
```matlab
% 首先我们随机生成一些数据并绘制出来
data = rand(100,2);
scatter(data(:,1),data(:,2));
% 设置聚类数量为3
k = 3;
% 随机选择k个点作为聚类中心
centroids = data(randperm(size(data,1),k),:);
% 迭代50次
for i=1:50
% 计算每个点到聚类中心的距离
distances = pdist2(data, centroids);
% 将每个点分配到距离最近的聚类中心
[~, labels] = min(distances,[],2);
% 更新聚类中心
for j=1:k
centroids(j,:) = mean(data(labels==j,:),1);
end
end
% 绘制聚类结果
hold on;
scatter(data(labels==1,1),data(labels==1,2),'r');
scatter(data(labels==2,1),data(labels==2,2),'g');
scatter(data(labels==3,1),data(labels==3,2),'b');
```
这个代码随机生成了一些二维数据,然后使用 K-means 算法将数据分成了三类,并使用不同的颜色标记出来。你可以根据自己的需要修改代码中的数据和聚类数量。
阅读全文