0

我有一个像这样已知(但长度可变)的结构-

1 0 1
0 1 1

我想将此结构绘制为彩色方块-将每个 1 着色为绿色方块,将 0s 着色为红色方块

就像是

[green][red][green]
[red][green][green]

在每个方块上添加一些可选文本会很好。

另外,我有另一个相同长度的数据结构,数字从 0.0 到 1.0 .. 类似于

0.99 0.09 1.0
0.09 0.87 1.0

我想根据相应数字与 0 或 1 的接近程度来改变上图中红色和绿色的强度。

任何建议都是有帮助的。非常感谢。

4

2 回答 2

2

您可以将colormap矩阵显示为缩放图像后设置:

Z = [1 0 1; 0 1 1];
figure; imagesc(Z); 
colormap([1 0 0; 0 1 0]);
axis off; axis image;
于 2012-11-22T00:43:38.530 回答
1

本质上,您希望将 2-d 结构转换为 3-d 结构,最后一个维度是 x3,每个 RGB 颜色一个维度。从这段代码开始,并使用它,直到它完成你想要的。

map=zeros(2,2,3);
map(:,:,1)=[1 1; 0 0];
map(:,:,2)=[1 0; 1 0];
map(:,:,3)=[0 0; 0 0];

figure;image(map);

或者,您可以有一个颜色图,它将像素数转换为强度。我已经有一段时间没有这样做了,但我至少可以为你指出正确的方向。运行第一个命令,然后查看颜色图。您希望逐渐从绿色变为红色。将其格式化为您想要的格式,使用最后一个命令将其传回,然后看看您会得到什么。

cmap = colormap;
%You'll want to change cmap to meet your needs
imagesc([.1 .2; .8 .9]);
colormap(cmap);
于 2012-11-22T00:25:32.520 回答