【问题标题】:color and width of a line according to the value of matrix线的颜色和宽度根据矩阵的值
【发布时间】:2019-05-06 03:21:33
【问题描述】:

我在 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) 的值更改颜色(上述 sn-p 中的红色)和线条宽度(如果可能)?

谢谢,

M

【问题讨论】:

    标签: matlab colormap


    【解决方案1】:

    设置'LineWidth' 来评估或引用另一个数组是没有问题的,例如'LineWidth',D2mat(ix,iy) 或其他。

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

    【讨论】:

    • 感谢您的回复。我用过:'line([xs xs+1],[ys ys],'LineWidth',D2mat(ix,iy,1),'LineStyle','--','Color','r');坚持,稍等; ' 并得到 ' 错误使用行值应该是一个大于 0 的有限数 '
    • 我希望我的行有一个颜色来指示 D2mat(Lx,Ly,s) 的值,其中矩阵 D2 已在代码的前面生成,即我想为我将应用于线条的 D2 矩阵。
    • 重新线路错误,IDK,查看D2mat(ix,iy,1)是否为标量。或者错误可能与 [xs xs+1],[ys ys] 有关。重新颜色,我认为我所说的涵盖了您的问题尝试使用它,您并没有让您的困惑更加清晰
    猜你喜欢
    • 2022-08-10
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2013-12-04
    相关资源
    最近更新 更多