我已经从值矩阵生成了热图,并在其上应用了色彩映射。有没有办法让我为每个方形段创建一个m×3的矩阵?
答案 0 :(得分:1)
我的理解是你有一个值矩阵(m-by-n),你可以使用颜色贴图进行着色,并且想要获得作为RBG的3D(m-by-n-by-3)矩阵这个彩色矩阵的图像。在这种情况下,尝试:
%//C is your data
C = randn(m,n);
%//d is the number of discrete colour in your colormap and map is your colormap itself.
d=4;
map = jet(d);
%//Normalize C to index map, i.e. make values of C range from 1 to d
C_norm = (C - min(C(:)))./(max(C(:)) - min(C(:))); %//Normalize to btw [0,1]
C_discrete = ceil(C_norm*(d-1)+1); %//Normalize to btw [1,d]
%//Index in map using linearized (i.e. m*n-by-1 vector) version of C
C_mapped = map(C_discrete(:),:);
%//Reshape to m-by-n-by-3
C_RGBreshape(permute(C_mapped, [1, 3, 2]), m, n, 3);
答案 1 :(得分:0)
你的意思是用colormap创建一个矩阵?通常你会反过来做。尝试
cmap = jet(64);
colormap(cmap);
这将colormap指定为cmap
作为矩阵,然后将其分配给th轴。我还认为colormap是一个axis属性,可以通过set
和get
函数访问。此外,您可能不想使用jet
色彩映射,但当然可以使用任何色彩映射