【问题标题】:MATLAB: how to set colors in matrixMATLAB:如何在矩阵中设置颜色
【发布时间】:2013-01-08 19:02:58
【问题描述】:

我有一个矩阵 N*N,具有三个不同的值,例如 0、0.5、1。 如何将图像打印到屏幕上,每个值代表不同的颜色? 重要提示:矩阵是一个循环,因此值可能会发生变化(我想在每次迭代时打印矩阵)。

我尝试使用颜色图,如果所有三个值都在矩阵中,则效果很好, 但是当只保留一两个值时,颜色就会改变。

我希望它如何工作:值为 0、0.5、1 的矩阵在屏幕上打印一个矩阵,其中每个单元格包含 0 个黑色、0.5 个绿色、1 个黄色。

非常感谢!

【问题讨论】:

  • 几天前有一个question 也是如此。

标签: matlab colors matrix


【解决方案1】:

只需创建您自己的只有三个可能值的颜色图:

a = [1 0.5 0;1 .5 0;0.5 0 1];
b = [1 0 1;1 1 0;0 0 1];
cmap = [0,0,0;0,1,0;1,1,0];
clims = [0 1];
imagesc(a,clims); colormap(cmap);
imagesc(b,clims); colormap(cmap);

a 给出:

b 给出:

【讨论】:

  • 谢谢,效果很好,但还是有一些不好的地方。如果矩阵是全一、零或任何其他数字,我会得到一个绿色打印的矩阵,而不是我想要的颜色。对于一个全零矩阵,我想得到黑色矩阵,但输出是绿色的。你知道该怎么做吗?
  • a = [0 0 0;0 0 0;0 0 0]; b = [1 1 1;1 1 1;1 1 1]; cmap = [0,0,0;0,1,0;1,1,0];图像c(a);颜色图(cmap);图像c(b);颜色图(cmap);我想要 a 全黑, b 全黄,而不是我把它们都变成绿色
  • clims = [0 1]; imagesc(a,clims);
【解决方案2】:

我可能会尝试 imagsec。或任何其他颜色缩放。从灰度开始。 RGB 会稍微复杂一些

【讨论】:

    猜你喜欢
    • 2012-06-18
    • 2018-09-09
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    相关资源
    最近更新 更多