MATLAB plot Legend 问题 标注问题

I1=imread('F:\fs5.jpg');
I2=imread('F:\cs5.jpg');
R1=double(I1(:,:,1));
G1=double(I1(:,:,2));
B1=double(I1(:,:,3));
R2=double(I2(:,:,1));
G2=double(I2(:,:,2));
B2=double(I2(:,:,3));

figure(4);plot(G2,B2,'*k',G1,B1,'+r');
xlabel('G分量');ylabel('B分量');
Legend('CS','FS');

为什么运行出来的标注都是同一个图标,不知道错哪了?

plot(G2(:),B2(:),'.b',G1(:),B1(:),'+r');

xlabel('G分量');ylabel('B分量');

legend('CS','FS');

%%标记是legend,另外plot画图是按行向量或者列向量,一对一进行画图。你的G2,B2,是矩阵,那么G2的第一行和B2的第一行是一幅图,G2的第二行和B2的第二行是一幅图。所以最后标记的都是一样的符号。

%%%%%%%%%%%%%%%%%%%%%%%

给你个例子:

>> a=magic(3)

a =

     8     1     6

     3     5     7

     4     9     2

>> b=rand(3,3)

b =

    0.9501    0.4860    0.4565

    0.2311    0.8913    0.0185

    0.6068    0.7621    0.8214

>> plot(b,a,'-.b')

从图可以看出是三条曲线,而不是一条曲线。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-13
可以看到了,这里的G2,B2,是第二个图的绿通道和蓝通道的图,他们都是二维的矩阵,画他们的时候他们是G2的第一列和B2的第一列画一个图,也就是说,如果G2,B2是50*50的矩阵的话,你的plot将有50*2这么多个单独的曲线,所以legend也很多也有50*2条线,前50个你用的标号都是*,后五十个才是+
所以你legned的时候只显示前两个,当然这两个都是*啦追问

我要的效果就是图中画出绿色蓝色通道,标注就两个,一个图一的一个图二的,怎么改程序?

相似回答