在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)。任何帮助这样做。提前致谢
答案 0 :(得分:1)
image(C)
将数组C
中的数据显示为图像。C
的每个元素 指定图像的1个像素的颜色。当
C
是一个二维m-by-n矩阵时,C
的元素被用作 索引到当前colormap
以确定颜色。对于'direct'
CDataMapping
(默认值),C
中的值被视为色彩映射索引(基于1,如果double
,则基于0 如果uint8
或uint16
)。
因此,您只需致电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