Matlab 使用colomap图形的颜色获取矩阵
我已经从一个值矩阵生成了一个热图,并在上面应用了一个颜色图。有没有一种方法可以让我创建一个由每个正方形段的颜色组成的m-x-3矩阵?你的意思是用颜色贴图创建一个矩阵?通常你是用另一种方式来做的。试一试Matlab 使用colomap图形的颜色获取矩阵,matlab,Matlab,我已经从一个值矩阵生成了一个热图,并在上面应用了一个颜色图。有没有一种方法可以让我创建一个由每个正方形段的颜色组成的m-x-3矩阵?你的意思是用颜色贴图创建一个矩阵?通常你是用另一种方式来做的。试一试 cmap = jet(64); colormap(cmap); 这会将颜色贴图作为矩阵分配给cmap,然后将其分配给th轴。我还认为colormap是axes属性,可以通过set和get函数访问。另外,您可能不想使用jetcolormap,但当然可以使用任何colormap我的理解是,您有一个值
cmap = jet(64);
colormap(cmap);
这会将颜色贴图作为矩阵分配给
cmap
,然后将其分配给th轴。我还认为colormap是axes属性,可以通过set
和get
函数访问。另外,您可能不想使用jet
colormap,但当然可以使用任何colormap我的理解是,您有一个值矩阵(m-by-n),您可以使用彩色贴图对其进行着色,并且您希望获得3D(m-by-n-by-3)矩阵,即该彩色矩阵的RBG图像。在这种情况下,请尝试:
%//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);
m-by-3还是m-by-n-by-3?定制彩色地图还是内置?