【发布时间】:2011-08-20 19:41:36
【问题描述】:
我需要模拟一场森林火灾,为此,我需要一个颜色图。 颜色图有 51 行,如下所示:
前 10 个是从深绿色到黄色的渐变,行由以下各项生成:
uint8color = [4 112 31];
for i = -1:8
cmap = double(uint8(uint8color + i*[30 27 3])) / 255
end;
接下来是一条蓝线:
cmap(11, :) = [0 0.5 0.9];
剩下的 40 行从黄色到红色变为几乎黑色,通过以下方式完成:
for i=19:-1:-20
farve = double(uint8(uint8farve + i*[12 12 5])) / 255;
end;
这很好,但是,我想尽可能避免使用循环,并尝试使用 Matlab 能够进行的紧凑数组操作
不过,我对上述内容非常坚持,没有意识到我如何(以及是否)可以使用紧凑表示法,但手头仍然有索引。
对于前 10 行,类似于:
cmap(1:10, :)
将替代 for 循环,但它仍需要我以某种方式提取索引并从值中减去 2 (1:10 -> -1:8)
我希望某个地方有一位 Matlab 大师,他可以为我指明正确的方向
提前致谢
【问题讨论】: