聚类分析matlab代码,附上聚类结果可视化的代码
时间: 2023-07-03 18:13:01 浏览: 143
聚类分析matlab_matlab聚类分析代码_分类_
5星 · 资源好评率100%
以下是K-means聚类分析matlab代码:
```
% 假设样本的特征为X,共有m个特征
% 假设要分成k个簇
k = 3;
maxIter = 100; % 最大迭代次数
n = size(X, 1); % 样本数量
% 随机初始化簇中心
centroids = X(randperm(n, k), :);
% 开始迭代
for iter = 1:maxIter
% 分配样本到簇中心最近的簇
distances = pdist2(X, centroids); % 计算每个样本到每个簇中心的距离
[minDist, clusters] = min(distances, [], 2); % 找到距离最近的簇
% 更新簇中心
for i = 1:k
centroids(i, :) = mean(X(clusters==i, :), 1);
end
end
% 可视化聚类结果
figure;
for i = 1:k
plot(X(clusters==i, 1), X(clusters==i, 2), 'o');
hold on;
plot(centroids(i, 1), centroids(i, 2), 'kx', 'MarkerSize', 10, 'LineWidth', 2);
end
```
以下是可视化聚类结果的代码:
```
% 假设clusters是聚类结果,其中每个元素是一个簇
% 假设样本的特征为X,共有m个特征
m = size(X, 2);
for i = 1:length(clusters)
color = rand(1, 3); % 随机生成一个颜色
for j = 1:length(clusters{i})
plot(X(clusters{i}(j), 1), X(clusters{i}(j), 2), 'o', 'color', color);
hold on;
end
end
```
阅读全文