цвет и ширина линии в соответствии со значением матрицы - PullRequest
0 голосов
/ 05 мая 2019

Я рисую решетку на 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;

и т.д..

Как сделать так, чтобы цвет (красный в приведенном фрагменте) и ширина линий, если это возможно, менялись в соответствии со значениями 2-мерной матрицы D2mat (Lx, Ly), которые я вычислил в другом месте?

Спасибо

M

1 Ответ

0 голосов
/ 05 мая 2019

Нет проблем установить 'LineWidth' для оценки или ссылки на другой массив, например, 'LineWidth',D2mat(ix,iy) или любой другой.

Для цвета, который вы хотите использовать, сначала выберите любую цветовую карту, которую вы хотите использовать, скажем, мы собираемся использовать jet цветовую карту. Затем вы просто определяете, сколько «уникальных» цветов вы хотите (не обязательно заметно уникальных, но это количество RGB-троек, которые вы сгенерируете), а затем просто ссылаетесь на них в цикле. Например, мы можем определить массив colors=jet(30), который дает нам массив RGB размером 30x3. Чтобы установить цвет линии в вашем цикле, просто установите 'Color',colors(ix,:). Теперь, если вы хотите использовать ix и iy для установки уникальных цветов, а не просто ix, как я показал, просто выполните преобразование линейного индекса с двумя итераторами.

...