根据矩阵的值,线条的颜色和宽度

时间:2019-05-05 16:25:40

标签: matlab colormap

我正在matlab上绘制格子。我想要格子的特定线条 具有与我在程序中其他位置计算的矩阵的值相对应的颜色

for ix=1:Lx; for iy=1:Ly; 

xs=ix;ys=iy;            

if ix<Lx;

%nnn along x
line([xs xs+1],[ys ys],'LineWidth',0.0000001,'LineStyle','--','Color','r'); hold on; 

%nnn along y
if iy==1; line([xs+1/2 xs+1/2],[ys ys+1/2],'LineWidth',0.0000001,'LineStyle','--','Color','r'); hold on; end;
if iy>=2 ; line([xs+1/2 xs+1/2],[ys-1/2 ys+1/2],'LineWidth',0.0000001,'LineStyle','--','Color','r'); hold on; end;

end;

如何使颜色(上面的片段中的红色)以及线宽(如果可能)根据我在其他位置计算的2d矩阵D2mat(Lx,Ly)的值而变化?

谢谢

M

1 个答案:

答案 0 :(得分:0)

设置'LineWidth'来求值或引用另一个数组(例如'LineWidth',D2mat(ix,iy)或其他对象)没问题。

对于颜色,要使用的颜色是首先选择要使用的颜色图,说我们将使用jet颜色图。然后,您只需定义所需的“唯一”颜色数量(不一定可以感知到唯一,而是您将生成的RGB三元组的数量),然后在循环中引用它们即可。例如,我们可以定义数组colors=jet(30),它为我们提供了一个30x3的RGB三元组数组。要在循环中设置线条颜色,只需设置'Color',colors(ix,:)。现在,如果您要使用ixiy设置唯一的颜色,而不是像我刚才展示的ix那样,只需使用两个迭代器进行线性索引转换。