我正在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
答案 0 :(得分:0)
设置'LineWidth'
来求值或引用另一个数组(例如'LineWidth',D2mat(ix,iy)
或其他对象)没问题。
对于颜色,要使用的颜色是首先选择要使用的颜色图,说我们将使用jet
颜色图。然后,您只需定义所需的“唯一”颜色数量(不一定可以感知到唯一,而是您将生成的RGB三元组的数量),然后在循环中引用它们即可。例如,我们可以定义数组colors=jet(30)
,它为我们提供了一个30x3的RGB三元组数组。要在循环中设置线条颜色,只需设置'Color',colors(ix,:)
。现在,如果您要使用ix
和iy
设置唯一的颜色,而不是像我刚才展示的ix
那样,只需使用两个迭代器进行线性索引转换。