matlab 实现三维坐标的kmeans聚类代码
时间: 2023-12-06 11:03:42 浏览: 47
以下是MATLAB实现三维坐标的kmeans聚类代码示例:
```matlab
%% 生成测试数据
rng(1); % 设置随机种子
N = 300; % 数据点个数
D = 3; % 数据维度
X = [randn(N/3, D)+1; randn(N/3, D); randn(N/3, D)-1];
%% K-means聚类
k = 3; % 聚类簇数
max_iter = 100; % 最大迭代次数
[IDX, C] = kmeans(X, k, 'MaxIter', max_iter);
%% 可视化结果
clr = ['r', 'g', 'b']; % 簇标记颜色
figure;
for i=1:k
plot3(X(IDX==i,1), X(IDX==i,2), X(IDX==i,3), [clr(i), 'o'], 'MarkerSize', 8);
hold on;
end
plot3(C(:,1), C(:,2), C(:,3), 'kx', 'MarkerSize', 12, 'LineWidth', 3);
grid on;
xlabel('X1');
ylabel('X2');
zlabel('X3');
title('K-means Clustering');
legend('Cluster 1', 'Cluster 2', 'Cluster 3', 'Centroids');
```
这段代码首先生成一个包含300个三维坐标数据点的数据集(其中一半在坐标系的正方向上,另一半在负方向上),然后使用MATLAB的`kmeans`函数对数据进行聚类,得到三个聚类簇和它们对应的质心,最后将聚类结果可视化。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)