我有一个已知(但可变长度)的结构,如下所示 -
1 0 1
0 1 1
我想将此结构绘制为彩色方块 - 每个1为绿色方块,0为红色方块
像
这样的东西[green][red][green]
[red][green][green]
在每个广场上添加一些可选文字会很不错。
另外,我有另一个相同长度的数据结构,数字从0.0到1.0 ......就像
0.99 0.09 1.0
0.09 0.87 1.0
我想在上面的图片中改变红色和绿色的强度,具体取决于接近0或1是相应的数字。
任何建议都有帮助。非常感谢。
答案 0 :(得分:2)
您可以在将矩阵显示为缩放图像后设置colormap
:
Z = [1 0 1; 0 1 1];
figure; imagesc(Z);
colormap([1 0 0; 0 1 0]);
axis off; axis image;
答案 1 :(得分: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);
或者,您可以使用色彩映射,将像素计数转换为强度。我已经做了一段时间,但我至少可以指出你正确的方向。运行第一个命令,然后查看colormap。你想逐渐从绿色变为红色。格式化它你想要的方式,用最后一个命令传回来,看看你得到了什么。
cmap = colormap;
%You'll want to change cmap to meet your needs
imagesc([.1 .2; .8 .9]);
colormap(cmap);