矩阵连通分量的颜色辨别

时间:2018-03-21 11:00:08

标签: matlab matrix colors

在Matlab中,我有一个矩阵M,比如说:

M=[0 0 2 2 0 0
   0 0 2 2 0 3
   1 1 2 2 3 3
   1 1 0 0 0 0
   1 1 0 0 0 0];

标有1,2和3的连接组件。 我需要通过使用不同的颜色(例如红色,绿色和蓝色)来区分组件(1,2和3)。任何帮助这样做。提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用imagecolormap。从前者的文档中,

  

image(C)将数组C中的数据显示为图像。 C的每个元素       指定图像的1个像素的颜色。

     

C是一个二维m-by-n矩阵时,C的元素被用作       索引到当前colormap以确定颜色。对于'direct' CDataMapping(默认值),       C中的值被视为色彩映射索引(基于1,如果double,则基于0       如果uint8uint16)。

因此,您只需致电image(M+1),以便价值从1开始;然后定义合适的色彩映射表。色图是一个3列矩阵,其中每行根据 R G B 组件定义颜色。

M = [0 0 2 2 0 0;0 0 2 2 0 3;1 1 2 2 3 3;1 1 0 0 0 0;1 1 0 0 0 0];
imagesc(M+1)       % add 1 so that values start at 1, not 0
cmap = [1 1 1;     % white
        .7 0 0;    % dark red
        0 .7 0;    % dark green
        0 0 .7];   % dark blue
colormap(cmap)     % set colormap
axis tight         % avoid white space around the values
axis equal         % aspect ratio 1:1

enter image description here