我需要模拟森林大火,为此,我需要一个色彩图。 colormap有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大师,他可以指出我正确的方向
提前致谢
答案 0 :(得分:1)
第一个循环可以改写为:
uint8color = [4 112 31];
i = (-1:8)';
cmap = double(uint8(repmat(uint8color, length(i), 1) + i*[30 27 3])) / 255;
我不太确定你想要在所有演员身上实现什么,不过......