我正在尝试使用MATLAB生成一张颜色映射图。给定三种颜色,高极值、零和低极值。我的思路是从高极值到中间循环,并将每个步骤存储到一个3xN的矩阵中(第一列为红色,第二列为绿色,第三列为蓝色)。因此我使用了以下代码:
%fade from high to zero
oldRed=high(1);
oldGreen=high(2);
oldBlue=high(3);
newRed=mid(1);
newGreen=mid(2);
newBlue=mid(3);
currentRed=oldRed; currentGreen=oldGreen; currentBlue=oldBlue;
for x=1:steps
currentRed=oldRed+((x*(newRed-oldRed))/(steps-1));
currentGreen=oldGreen+((x*(newRed-oldRed))/(steps-1));
currentBlue=oldBlue+((x*(newRed-oldRed))/(steps-1));
cmap=[cmap;[currentRed currentGreen currentBlue]];
end
然后我将从零值到最低极端进行相同的操作。 然而,我的代码没有给我任何有用的矩阵。 是否有人能够帮助我如何应对这种情况?
linspace
或者colon
运算符 (:
)。你在循环中所做的一切都可以使用向量化表达式重写,而不需要循环。 - Eitan T