我在matlab中有一个以下形式的矩阵:
A=[1 1 1 -1 -1
0 1 0 1 0
0 1 1 1 1
2 2 0 1 2
2 2 2 2 -1]
此矩阵表示平面中的地图。每个A(i,j)都是此地图中的一个单元格。我想根据它的数量为每个细胞赋予颜色。所以:
If(A(i, j)<=0)
color(A(i, j)) with black
Elseif(A(i, j)==k)
color(A(i, j)) with color k other than black
end
如何在matlab中执行此操作?有什么建议吗?
答案 0 :(得分:3)
您可以使用 hsv 或手动定义多种颜色。
hsv(3)
ans =
1 0 0
0 1 0
0 0 1
然后使用色彩映射指定色彩映射。
colormap(hsv(3))
然后使用 imagesc
imagesc(A)
如果您想指定颜色也很容易:
a = hsv(3)
a(1,:) = 1; % make the first color white
a(3,:) = 0; % make the last color black
a =
1 1 1
0 1 0
0 0 0
colormap(a)
imagesc(A)