用matlab编写Kmeans算法
时间: 2023-07-01 19:11:06 浏览: 93
Kmeans算法matlab
下面是用MATLAB编写Kmeans算法的示例代码:
```
% 生成随机数据
data = rand(100,2);
% 设置聚类数
k = 3;
% 初始化聚类中心
centroids = data(randperm(length(data),k),:);
% 迭代次数
max_iters = 100;
for i=1:max_iters
% 距离矩阵
distances = pdist2(data, centroids);
% 找出每个数据点属于哪个聚类
[~, cluster_idx] = min(distances, [], 2);
% 更新聚类中心
for j=1:k
centroids(j,:) = mean(data(cluster_idx==j,:), 1);
end
end
% 可视化聚类结果
scatter(data(:,1), data(:,2), 10, cluster_idx);
```
其中,`data`是待聚类的数据,`k`是聚类数,`centroids`是初始聚类中心,`max_iters`是最大迭代次数。在每次迭代中,首先计算距离矩阵,然后根据距离矩阵找出每个数据点属于哪个聚类,最后更新聚类中心。最后,用`scatter`函数可视化聚类结果。
阅读全文