通过绘图句柄绘制plotmatrix的部分

时间:2013-11-12 17:11:50

标签: plot octave plotmatrix

我的代码如下:

A = [7 3 -1 1; -3 -9 3 7; -5 9 -7 -2; -2 4 -6 -2; 0 -3 8 2; 5 3 1 0; -10 10 -3 9; -6 8 9 -8; -6 2 -3 7; -2 2 2 -2; -9 0 -5 -1; 2 -5 2 -7; -2 10 -3 9; -5 -9 9 2; -8 7 6 -8; -3 -10 8 10];

[H,AX,BigAx,P,PAx] = plotmatrix(A);

graphics_toolkit fltk;

subplot(3,3,1)
plot(H(2))
subplot(3,3,2)
plot(H(3))
subplot(3,3,3)
plot(H(4))
subplot(3,3,5)
plot(H(7))
subplot(3,3,6)
plot(H(8))
subplot(3,3,9)
plot(H(9))

print -deps -mono p11c.eps

函数plotmatrix给我一个非常好的情节,我需要的东西 - 但我只需要右上半部分。根据文档,plotmatrix返回H一个绘图句柄数组,可以使用plot绘制。

但是,执行此代码会产生6个带有奇怪轴的空图,而plotmatrix次调用会返回正确的图。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

H表示各个图形对象的句柄,而不是数据(请参阅documentation)。要做你想做的事,你需要:

figure
subplot(3,3,1)
plot(get(H(2),'XData'),get(H(2),'YData'),'.')
subplot(3,3,2)
plot(get(H(3),'XData'),get(H(3),'YData'),'.')
subplot(3,3,3)
plot(get(H(4),'XData'),get(H(4),'YData'),'.')
subplot(3,3,5)
plot(get(H(7),'XData'),get(H(4),'YData'),'.')
subplot(3,3,6)
plot(get(H(8),'XData'),get(H(4),'YData'),'.')
subplot(3,3,9)
plot(get(H(9),'XData'),get(H(4),'YData'),'.')
顺便说一句,我不相信H按照你的想法排序。您可能想要检查数据是否与您期望的矩阵位相对应。

答案 1 :(得分:0)

这并没有真正回答这个问题,但是这段代码可以满足我的需求:

for i = 1:3
    for j = i+1:4
        subplot (3, 3, (i-1)*3+(j-1));
        scatter (A(:,i), A(:,j));
    end
end