matlab kmeans
时间: 2023-06-25 07:07:03 浏览: 64
K-means是一种常用的聚类算法,在MATLAB中也有相应的实现。
MATLAB中的kmeans函数可以使用以下语法调用:
[idx,C,sumd,D] = kmeans(X,k)
其中,X表示聚类数据的矩阵,每一行代表一个样本,每一列代表一个特征;k表示聚类的簇数;idx是一个向量,表示每个样本所属的簇;C是一个矩阵,表示每个簇的中心点;sumd是一个向量,表示每个样本到其所属簇的中心点的距离的平方和;D是一个矩阵,表示每个样本到每个簇的中心点的距离的平方。
例如,以下示例代码将使用kmeans函数对一个二维数据集进行聚类:
```matlab
% 生成随机数据集
rng('default')
X = [randn(100,2)*0.75+ones(100,2);
randn(100,2)*0.5-ones(100,2)];
% 使用kmeans函数进行聚类
[idx,C,sumd] = kmeans(X,2);
% 绘制聚类结果
figure;
plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(C(:,1),C(:,2),'kx',...
'MarkerSize',15,'LineWidth',3)
legend('Cluster 1','Cluster 2','Centroids',...
'Location','NW')
title 'Cluster Assignments and Centroids'
hold off
```
运行以上代码,将得到一个包含两个簇的聚类结果。
阅读全文