我使用plot_confusion()
函数绘制了几个混淆矩阵,并希望将它们放入一个子图中(2×5的布局),但似乎行不通。每个混淆矩阵都是单独显示的。绘制混淆矩阵有任何限制吗?谢谢!
figureSubplot(2,1,1);plotconfusion(targets,outputs,'train');subplot(2,1,2);plotconfusion(targets1,outputs1,'test')
回答:
你“本不应该”这样做(该功能并未包含),但你可以稍微“欺骗”一下Matlab,因为它最终只是一个坐标轴对象:
%% 第一个示例数据[x,t] = cancer_dataset;net = patternnet(10);net = train(net,x,t);y = net(x);%// 绘图plotconfusion(t,y)%// 获取句柄并启用第二个绘图cp1 = gcf;cp1.NextPlot = 'new'ax1 = findobj(cp1,'Type','Axes')%% 第二个示例数据[x,t] = cancer_dataset;net = patternnet(5);net = train(net,2*x,t);y = net(x);%// 绘图plotconfusion(t,y)%// 获取句柄并启用第三个绘图cp2 = gcf;cp2.NextPlot = 'new'ax2 = findobj(cp2,'Type','Axes')%% 组合绘图f1 = figure(42)f1s1 = subplot(121)copyobj(allchild(ax1),f1s1)f1s2 = subplot(122)copyobj(allchild(ax2),f1s2)
你会丢失标签和标题,可能需要调整坐标轴,但我相信你能做到这一点。