k-means聚类分析matlab代码
时间: 2023-09-16 10:12:43 浏览: 52
当然可以!以下是一个简单的 k-means 聚类分析的 Matlab 代码示例:
```matlab
% 生成随机数据
data = randn(100, 2);
% 初始化聚类中心
k = 3; % 聚类的数量
centroids = data(randperm(size(data, 1), k), :);
% 迭代更新聚类中心
maxIter = 100; % 最大迭代次数
for iter = 1:maxIter
% 计算每个样本点到聚类中心的距离
distances = pdist2(data, centroids);
% 分配每个样本点到最近的聚类中心
[~, labels] = min(distances, [], 2);
% 更新聚类中心为每个簇的平均值
for i = 1:k
centroids(i, :) = mean(data(labels == i, :));
end
end
% 绘制聚类结果
figure;
gscatter(data(:, 1), data(:, 2), labels);
hold on;
plot(centroids(:, 1), centroids(:, 2), 'kx', 'MarkerSize', 10, 'LineWidth', 2);
title('k-means聚类结果');
```
这段代码将生成一个包含两个维度的随机数据集,并使用 k-means 算法将其分为 k 个簇。最后,它会绘制出聚类结果。你可以根据需要调整数据集和聚类数量。希望对你有所帮助!