kmeans聚类算法matlab代码简单例子
时间: 2023-07-16 10:10:48 浏览: 130
当然可以!下面是一个简单的K-means聚类算法的Matlab代码示例:
```matlab
% 生成随机数据
rng(1); % 设置随机种子以保持结果一致
data = [randn(100,2)+1; randn(100,2)-1];
% 设置聚类数量
k = 2;
% 初始化聚类中心
center = datasample(data, k, 'Replace', false);
% 迭代更新聚类中心
maxIter = 100; % 最大迭代次数
for iter = 1:maxIter
% 计算每个样本到各个聚类中心的距离
dist = pdist2(data, center);
% 分配样本到最近的聚类中心
[~, labels] = min(dist, [], 2);
% 更新聚类中心为各个聚类的均值
for i = 1:k
center(i,:) = mean(data(labels==i, :));
end
end
% 绘制聚类结果
figure;
gscatter(data(:,1), data(:,2), labels);
hold on;
plot(center(:,1), center(:,2), 'k*', 'MarkerSize', 10);
title('K-means Clustering Results');
```
这个例子生成了一个包含两个簇的二维数据集,然后使用K-means算法对其进行聚类。代码中使用了内置的`pdist2`函数计算样本与聚类中心之间的距离,然后根据距离将样本分配到最近的聚类中心。最后,绘制了聚类结果。
请注意,这只是一个简单的示例,实际使用中可能需要根据具体情况进行参数调整和结果评估。
阅读全文