Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 使用colomap图形的颜色获取矩阵_Matlab - Fatal编程技术网

Matlab 使用colomap图形的颜色获取矩阵

Matlab 使用colomap图形的颜色获取矩阵,matlab,Matlab,我已经从一个值矩阵生成了一个热图,并在上面应用了一个颜色图。有没有一种方法可以让我创建一个由每个正方形段的颜色组成的m-x-3矩阵?你的意思是用颜色贴图创建一个矩阵?通常你是用另一种方式来做的。试一试 cmap = jet(64); colormap(cmap); 这会将颜色贴图作为矩阵分配给cmap,然后将其分配给th轴。我还认为colormap是axes属性,可以通过set和get函数访问。另外,您可能不想使用jetcolormap,但当然可以使用任何colormap我的理解是,您有一个值

我已经从一个值矩阵生成了一个热图,并在上面应用了一个颜色图。有没有一种方法可以让我创建一个由每个正方形段的颜色组成的m-x-3矩阵?

你的意思是用颜色贴图创建一个矩阵?通常你是用另一种方式来做的。试一试

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?定制彩色地图还是内置?