修改以下代码,使其能够分别计算四种故障类型的诊断准确率并分别显示:figure plot(test_simu,'o','linewidth',1.5,'markersize',7) hold on plot(output_test,'+','linewidth',1.5) title(['BP测试集诊断准确率:' num2str(accTest*100) '%'],'fontsize',12) xlabel('样本','fontsize',12) ylabel('类型','fontsize',12) legend('实际类型','诊断类型') grid on set(gca,'ytick',1:6,'yticklabel',names) set(gca,'linewidth',1.5)
时间: 2023-08-06 20:17:35 浏览: 98
请尝试以下修改:
```
% 将实际类型和诊断类型分别存储在不同的变量中
true_type = test_simu;
diag_type = output_test;
% 根据不同的故障类型计算准确率
accTest1 = sum(true_type == diag_type & true_type == 1) / sum(true_type == 1);
accTest2 = sum(true_type == diag_type & true_type == 2) / sum(true_type == 2);
accTest3 = sum(true_type == diag_type & true_type == 3) / sum(true_type == 3);
accTest4 = sum(true_type == diag_type & true_type == 4) / sum(true_type == 4);
% 显示每种故障类型的诊断准确率
disp(['故障类型1的诊断准确率:' num2str(accTest1*100) '%']);
disp(['故障类型2的诊断准确率:' num2str(accTest2*100) '%']);
disp(['故障类型3的诊断准确率:' num2str(accTest3*100) '%']);
disp(['故障类型4的诊断准确率:' num2str(accTest4*100) '%']);
% 绘制图像
figure
plot(true_type,'o','linewidth',1.5,'markersize',7)
hold on
plot(diag_type,'+','linewidth',1.5)
title(['BP测试集总体诊断准确率:' num2str(accTest*100) '%'],'fontsize',12)
xlabel('样本','fontsize',12)
ylabel('类型','fontsize',12)
legend('实际类型','诊断类型')
grid on
set(gca,'ytick',1:6,'yticklabel',names)
set(gca,'linewidth',1.5)
```
其中,`true_type` 存储实际类型,`diag_type` 存储诊断类型。根据不同的故障类型计算准确率,并分别显示。最后,绘制带有实际类型和诊断类型的图像,并显示总体诊断准确率。
阅读全文