考虑以下matrixplot
randdata = rand(1000,3);
[~,ax] = plotmatrix(randdata)
现在例如,如果我想清除诊断图,我使用以下方法
ClrIndx = find(eye(size(randdata,2)))
ClrIndx =
1
5
9
cla(ax(ClrIndx))
但是诊断图并没有被清除,只是为了确保我比较了轴手柄
double(ax)
ans =
0.0029 3.0029 6.0029
1.0029 4.0029 7.0029
2.0029 5.0029 8.0029
double(ax(ClrIndx))
ans =
0.0029
4.0029
8.0029
这确认我有正确的轴手柄,但cla()
命令仍无法清除诊断图,我做错了什么?
答案 0 :(得分:2)
事实证明,plotmatrix
有许多轴魔法。看看帮助,结果发现它使用了多种辅助不可见轴。你需要清除最后一个:
[~,~,~,~,pax]=plotmatrix(randdata);
cla(pax(LinearClrIndex));
其中索引应该是线性的:如果是5x5矩阵图,pax
将是一个5元素数组。
如果要删除轴,不仅要清除它,还需要第二个输出:
randdata = rand(5)
[~,ax,~,~,pax]=plotmatrix(randdata);
delete(pax(2));
delete(ax(2,2));
这将在(2,2)位置留下一个充满空虚的大洞。