52matlab技术网站,matlab教程,matlab安装教程,matlab下载

标题: categorical数组绘制混淆矩阵遇到的问题 [打印本页]

作者: matlab的旋律    时间: 2023-2-16 17:16
标题: categorical数组绘制混淆矩阵遇到的问题
[attach]357[/attach]


使用相同categorical数组绘制混淆矩阵,由于要将其中的数字标签替换成字符标签{'直流电压偏差','直流电压波动','直流电压纹波','动态电压暂降','线路故障暂降','正常'},开始使用find寻找index替换的方式,具体代码如下:
  1. YTest(find(YTest == categorical(1))) = categorical({'直流电压偏差'});
  2.     YTest(find(YTest == categorical(2))) = categorical({'直流电压波动'});
  3.     YTest(find(YTest == categorical(3))) = categorical({'直流电压纹波'});
  4.     YTest(find(YTest == categorical(4))) = categorical({'动态电压暂降'});
  5.     YTest(find(YTest == categorical(5))) = categorical({'线路故障暂降'});
  6.     YTest(find(YTest == categorical(6))) = categorical({'正常'});

  7.     YPred(find(YPred == categorical(1))) = categorical({'直流电压偏差'});
  8.     YPred(find(YPred == categorical(2))) = categorical({'直流电压波动'});
  9.     YPred(find(YPred == categorical(3))) = categorical({'直流电压纹波'});
  10.     YPred(find(YPred == categorical(4))) = categorical({'动态电压暂降'});
  11.     YPred(find(YPred == categorical(5))) = categorical({'线路故障暂降'});
  12.     YPred(find(YPred == categorical(6))) = categorical({'正常'});
复制代码
结果使用绘制的混淆矩阵如下图所示:
[attach]358[/attach]

结果显示的混淆矩阵除了修改后的标签,还包含原来的数字标签,但是看标签的数据类型还是categorical数组,如下图示:
[attach]359[/attach]

查看数据类型,完全一致,无法解决问题。后来使用categorical自带的替换功能,代码如下:

  1. YTest = categorical(double(YTest),[1,2,3,4,5,6],{'直流电压偏差','直流电压波动','直流电压纹波','动态电压暂降','线路故障暂降','正常'})
复制代码
解决。绘制的混淆矩阵中字符标签完美取代数字标签,如下图示:

[attach]360[/attach]






欢迎光临 52matlab技术网站,matlab教程,matlab安装教程,matlab下载 (http://www.52matlab.com/) Powered by Discuz! X3.2