Нужна помощь в построении линий между точками - PullRequest
1 голос
/ 17 июля 2010

Мне нужна помощь в построении линий между точками. Предположим, я начинаю с создания 6 случайных точек -

x = rand(6,1);
y = rand(6,1);

Так что мои очки (x(1),y(1)), (x(2),y(2)), (x(3),y(3)), (x(4),y(4)), (x(5),y(5)), (x(6),y(6))

Теперь я хочу провести прямые линии между точками 1 и 5, 2 и 6, 3 и 4 и построить их на одной диаграмме. Итак, я получаю 3 прямые линии.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 17 июля 2010

Вы можете сделать это одним вызовом PLOT .Если вы преобразуете свои x и y данные в матрицы с каждым столбцом, содержащим набор координат для одной линии, тогда PLOT нарисует разноцветную линию для каждого столбца:

index = [1 2 3; 5 6 4];   %# The index to reshape x and y into 2-by-3 matrices
plot(x(index),y(index));  %# Plot the lines
1 голос
/ 17 июля 2010

Вот два способа сделать это:

Первый способ, используя hold on. Эти строки разделены, т. Е. Если один из них станет красным, остальные останутся синими.

%# plot the first line
plot([x(1);x(5)],[y(1);y(5)]);

hold on %# this will prevent the previous plot from disappearing

%# plot the rest
plot([x(2);x(6)],[y(2);y(6)]);
plot([x(3);x(4)],[y(3);y(4)]);

Второй способ, использующий тот факт, что NaN не наносится на график. Эти строки сгруппированы, т.е. если вы включите одну красную, все будут красными.

%# create array for plotting
xy = NaN(8,2);

%# fill in data
xy([1 2 4 5 7 8],1) = x([1 5 2 6 3 4]);
xy([1 2 4 5 7 8],2) = y([1 5 2 6 3 4]);

%# plot
plot(xy(:,1),xy(:,2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...