kmeans函数matlab
时间: 2023-08-22 07:05:12 浏览: 100
在 MATLAB 中,可以使用 `kmeans` 函数进行 K-means 聚类。该函数的语法如下:
```matlab
[idx, C] = kmeans(X, k)
```
其中,`X` 为一个大小为 `m-by-n` 的矩阵,表示 m 个 n 维样本的特征向量;`k` 为聚类的个数;`idx` 为大小为 `m-by-1` 的一维向量,表示每个样本所属的聚类的索引;`C` 为大小为 `k-by-n` 的矩阵,表示聚类的中心点。
另外,`kmeans` 函数还有其他的输入参数和输出参数,可以根据实际需要进行使用。例如,可以通过指定 `'Distance'` 参数来选择不同的距离度量方式,例如欧几里得距离或曼哈顿距离等。
下面是一个使用 `kmeans` 函数进行聚类的示例:
```matlab
% 生成随机数据
X = [randn(100, 2)*0.75+ones(100, 2);
randn(100, 2)*0.5-ones(100, 2)];
% 使用 kmeans 函数进行聚类
[idx, C] = 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 'K-means Clustering'
hold off
```
该示例代码生成了一个大小为 `200-by-2` 的随机数据矩阵 `X`,然后使用 `kmeans` 函数将数据聚为 2 类,并将聚类结果可视化。
阅读全文