清除plotmatrix的诊断图

时间:2016-06-29 14:23:21

标签: matlab plot matlab-figure

考虑以下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()命令仍无法清除诊断图,我做错了什么?

1 个答案:

答案 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)位置留下一个充满空虚的大洞。