在matlab中绘制结构

时间:2012-11-22 00:19:28

标签: matlab

我有一个已知(但可变长度)的结构,如下所示 -

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是相应的数字。

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

2 个答案:

答案 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);