Kmeans matlab 代码
时间: 2023-09-22 11:09:17 浏览: 93
以下是一个简单的Kmeans Matlab代码示例:
```matlab
% 生成随机数据
data = rand(100,2);
% 设置K值和迭代次数
K = 3;
max_iters = 10;
% 随机初始化质心
centroids = data(randperm(size(data,1),K),:);
for i=1:max_iters
% 计算样本到质心的距离
distances = pdist2(data, centroids);
% 找到最近的质心
[~,labels] = min(distances,[],2);
% 更新质心位置
for j=1:K
centroids(j,:) = mean(data(labels==j,:));
end
end
% 可视化结果
scatter(data(:,1),data(:,2),10,labels,'filled')
hold on
scatter(centroids(:,1),centroids(:,2),50,'k','filled')
```
这个代码使用Kmeans算法对一个随机生成的二维数据集进行聚类,并将结果可视化。首先,我们生成100个随机的二维数据点。然后,我们设置K值为3,最大迭代次数为10。接下来,我们随机初始化3个质心。在迭代过程中,我们计算每个样本到每个质心的距离,并将其分配给最近的质心。然后,我们更新每个质心的位置,使其成为其分配的所有样本的平均值。最后,我们将数据点和质心可视化,其中数据点的颜色对应于其所属的簇。
阅读全文