matlab如何绘制混淆矩阵
时间: 2023-08-24 17:07:30 浏览: 584
在 MATLAB 中,您可以使用 `confusionmat` 函数绘制混淆矩阵。`confusionmat` 函数接受真实标签和预测标签作为输入,并返回一个混淆矩阵。
下面是一个绘制混淆矩阵的示例代码:
```matlab
% 真实标签
actual_labels = [1, 1, 0, 1, 0, 2, 2, 0, 2, 1];
% 预测标签
predicted_labels = [1, 0, 0, 1, 0, 2, 1, 0, 2, 1];
% 绘制混淆矩阵
C = confusionmat(actual_labels, predicted_labels);
% 显示混淆矩阵
disp("Confusion Matrix:");
disp(C);
```
运行以上代码,将输出混淆矩阵:
```
Confusion Matrix:
2 1 0
0 2 0
0 0 3
```
这个混淆矩阵表示了分类问题中预测结果与真实结果的对比情况。行表示真实标签,列表示预测标签。例如,第一行第一列的值为2,表示真实标签为1且预测标签也为1的样本有2个。
相关问题
matlab画混淆矩阵代码
### 使用 MATLAB 绘制混淆矩阵
#### 示例代码展示
为了在 MATLAB 中绘制混淆矩阵,可以采用多种方法。一种常见的方式是使用 `imagesc` 函数配合自定义的颜色映射来实现渐变效果[^3]。
```matlab
% 假设已存在两个向量 actual_labels 和 predicted_labels,
% 它们分别代表真实标签和预测标签。
C = confusionmat(actual_labels, predicted_labels); % 计算混淆矩阵
figure();
imagesc(C);
title('Confusion Matrix');
xlabel('Predicted Class');
ylabel('Actual Class');
colorbar;
```
上述代码片段能够创建一个基础版本的混淆矩阵可视化图表。对于更复杂的场景或者想要获得更加美观的效果,则可能需要用到专门设计用于此目的的功能函数如 `plotconfusion`[^2]:
```matlab
plotconfusion(targets, outputs);
```
这里假设 `targets` 是目标分类值而 `outputs` 则是从模型得到的结果。该命令会自动处理数据并给出带有颜色编码以及百分比标注在内的完整混淆矩阵图像。
如果追求更高层次定制化需求下的渐变色显示方式,还可以参考如下进阶实例[^1]:
```matlab
function h = plot_grad_confusion_matrix(cm)
max_val = max(max(cm));
min_val = min(min(cm));
figure;
image([min_val:max_val], [min_val:max_val], cm);
colormap jet;
axis square;
grid on;
set(gca,'GridLineStyle','-')
hold on
text(0.5: size(cm,2), ...
repmat(size(cm,1)+0.5,1,size(cm,2)), ...
num2str((cm)', '%.4g'), 'HorizontalAlignment', 'center');
title('Gradient Confusion Matrix');
xlabel('Predicted Label');
ylabel('True Label');
end
```
这段脚本不仅实现了基于数值范围调整色彩梯度变化,还加入了网格线、文字标记等功能以增强可读性和视觉吸引力。
matlab画混淆矩阵加入值
要在MATLAB中画混淆矩阵并加入值,可以使用confusionchart函数。以下是一个示例代码:
```matlab
% 创建混淆矩阵
actualLabels = [1 0 1 1 0 1 0 0 1 0];
predictedLabels = [1 0 0 1 0 1 1 0 1 1];
% 统计混淆矩阵中每个类别的数量
numClasses = 2;
C = confusionmat(actualLabels, predictedLabels);
% 创建混淆矩阵图
figure
confusionchart(C, 'Normalization', 'row-normalized')
% 在混淆矩阵图中加入值
h = gca;
h.XAxis.TickLabelRotation = 45;
h.XAxis.FontSize = 10;
h.YAxis.FontSize = 10;
h.Title.FontSize = 12;
h.YLabel.String = 'Actual';
h.XLabel.String = 'Predicted';
```
这段代码会创建一个混淆矩阵图,并将实际类别和预测类别的数量加入到图中。你可以根据自己的数据替换`actualLabels`和`predictedLabels`来绘制你自己的混淆矩阵。
阅读全文
相关推荐















