kmeans聚类算法matlab代码及例题
时间: 2023-09-11 16:08:29 浏览: 166
你可以使用以下的 MATLAB 代码来实现 K-means 聚类算法:
```matlab
% 设置聚类个数
k = 3;
% 生成随机数据
data = rand(100, 2);
% 初始化聚类中心
centers = data(randperm(size(data, 1), k), :);
% 迭代更新聚类中心
for i = 1:10
% 计算每个样本点到聚类中心的距离
distances = pdist2(data, centers);
% 找到最近的聚类中心
[~, labels] = min(distances, [], 2);
% 更新聚类中心
for j = 1:k
centers(j, :) = mean(data(labels == j, :));
end
end
% 绘制结果
scatter(data(:, 1), data(:, 2), [], labels);
hold on;
scatter(centers(:, 1), centers(:, 2), 'r', 'filled');
hold off;
```
此代码中,我们首先设定了聚类的个数 `k`,然后随机生成了一个包含100个样本点的二维数据。接下来,我们使用随机选择的样本点作为初始的聚类中心,在每次迭代中,计算每个样本点到聚类中心的距离,并将其分配给距离最近的聚类中心。然后,更新聚类中心为每个聚类中的样本点的平均值。最后,我们将数据点和聚类中心进行可视化。
你可以根据自己的需要修改数据和聚类个数,以及迭代次数。
希望这能帮到你!如果你有更多问题,请随时提问。
阅读全文