所以我想要完成的一个小版本就是我有一个矩阵A;
A = [0 1 0; 2 0 0;1 3 6;9 0 1];
imagesc(A)
所以当我使用imagesc(A)时,我得到一个漂亮的网格,每个值用不同的颜色表示。但是我希望能够将0的值专门设置为白色,并且理想情况下能够根据我的需要更改其他颜色,例如,如果我知道两个值代表相同的东西,如3和6,那么它们可以设置为相同或相对相似的颜色。 imagesc是错误的命令使用,因为我可以告诉它使用颜色渐变。
由于
答案 0 :(得分:1)
2个选项:
或者只是将矩阵A
映射到可以根据需要着色的矩阵。因此,如果您知道您希望3
和6
使用相同的颜色,那么请创建一个映射函数。然后使用A
索引地图,使地图的第3和第6个元素必须相同,例如。
map = [1, 2, 3, 4, 5, 6, 4, 7, 8, 9, 10];
imagesc(map(A+1))
请注意map
中的元素4和7是相同的,因为您的A
值从0
开始,这也是为什么第二行中有+1
的原因
然后只选择一个从白色开始的色彩映射。
我个人会选择方法1。
答案 1 :(得分:0)
简单的解决方案:
% get colormap and set first value to white
cmap = colormap;
cmap(1,:) = [1 1 1];
% apply new colormap
colormap(cmap);
% display matrix
imagesc(A);
显然你可以用同样的方式改变其他值的颜色