kmeans聚类算法matlab画图
时间: 2023-09-11 21:07:31 浏览: 103
要在Matlab中绘制k-means聚类效果的图像,可以按照以下步骤进行操作:
1. 首先,需要使用k-means函数对数据进行聚类。例如,使用以下代码将数据聚类成3个簇:
```matlab
K = 3;
[idx, C = kmeans(X, K);
```
这里`X`是输入数据,`idx`是每个数据点的簇索引,`C`是每个簇的中心点。
2. 接下来,创建一个颜色列表,用于为每个簇分配颜色。例如,使用以下代码创建一个包含一些预定义颜色值的`colorList`数组:
```matlab
colorList = [0.4 0.76 0.65; 0.99 0.55 0.38; 0.55 0.63 0.80];
```
3. 然后,使用scatter函数绘制散点图。根据每个数据点的簇索引,将其分配给相应的颜色。例如,使用以下代码绘制散点图:
```matlab
figure()
hold on
strSet = cell(K, 1);
for i = 1:K
scatter(X(idx==i, 1), X(idx==i, 2), 80, 'filled', ...
'LineWidth', 1, 'MarkerEdgeColor', [1 1 1]*.3, 'MarkerFaceColor', colorList(i, :));
strSet{i} = ['pointSet', num2str(i)];
end
legend(gca, strSet{:})
```
这段代码将每个簇的数据点用不同颜色的散点图表示,并创建一个图例来标识每个簇。
4. 最后,对坐标区域进行修饰,如设置边框、刻度线、网格等。例如,使用以下代码对坐标区域进行修饰:
```matlab
ax = gca;
ax.LineWidth = 1.4;
ax.Box = 'on';
ax.TickDir = 'in';
ax.XMinorTick = 'on';
ax.YMinorTick = 'on';
ax.XGrid = 'on';
ax.YGrid = 'on';
ax.GridLineStyle = '--';
ax.XColor = [.3, .3, .3];
ax.YColor = [.3, .3, .3];
ax.FontWeight = 'bold';
ax.FontName = 'Cambria';
ax.FontSize = 11;
```
这段代码设置了坐标区域的边框线宽、刻度线方向、次要刻度线、网格线样式以及坐标轴的颜色和字体样式。
以上就是在Matlab中绘制k-means聚类效果图像的步骤和代码实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
阅读全文