题目
在 MATLAB 中,如何可视化kmeans聚类结果? ____A. plot(X, 'o', 'Color', idx)B. scatter(X, 'Color', C)C. gscatter(X, idx)D. gscatter(X(:,1), X(:,2), idx)
在 MATLAB 中,如何可视化kmeans聚类结果? ____
A. plot(X, 'o', 'Color', idx)
B. scatter(X, 'Color', C)
C. gscatter(X, idx)
D. gscatter(X(:,1), X(:,2), idx)
题目解答
答案
D. gscatter(X(:,1), X(:,2), idx)
解析
考查要点:本题主要考查在MATLAB中使用kmeans聚类后,如何通过可视化函数展示聚类结果。关键在于理解不同绘图函数的参数要求,以及如何正确传递聚类结果idx。
解题核心思路:
- 明确绘图函数的作用:
gscatter是MATLAB中专门用于按组别绘制散点图的函数,需明确其参数顺序(x坐标、y坐标、分组变量)。 - 数据维度的处理:若数据
X是二维数组,需提取第一列和第二列作为x和y坐标。 - 排除干扰选项:注意选项中是否存在未定义变量(如选项B中的
C)或函数调用错误(如选项C未拆分坐标)。
破题关键点:
gscatter的正确调用格式:gscatter(x, y, group),其中x和y是坐标数据,group是分组变量(如kmeans的idx)。idx的用途:kmeans返回的idx表示每个样本所属的簇编号,需作为分组变量传入绘图函数。
选项分析
选项A:plot(X, 'o', 'Color', idx)
- 错误原因:
plot函数主要用于绘制线图,不支持直接通过Color参数按组别上色。此外,Color参数需传入颜色值或颜色图,而非直接使用idx。
选项B:scatter(X, 'Color', C)
- 错误原因:
scatter函数的正确调用格式为scatter(x, y, size, color),但此处缺少x和y参数。此外,变量C未定义,题目中应使用idx作为分组变量。
选项C:gscatter(X, idx)
- 错误原因:
gscatter的参数应为x,y,group,但此处直接传入二维数组X作为第一个参数,导致函数无法正确解析坐标。需拆分X的列作为x和y。
选项D:gscatter(X(:,1), X(:,2), idx)
- 正确性:
gscatter通过X(:,1)和X(:,2)分别提取二维数据的x和y坐标,idx作为分组变量,能按簇编号为每个点上色,正确展示聚类结果。