Соединение конечной и начальной точки на простом x-y графике (построение замкнутой кривой / многоугольника) - PullRequest
6 голосов
/ 17 декабря 2011

Скажем, например, у меня было ...

x = [1 1 2 2];
y = [1 2 2 1];
plot(x, y, 'b-');

Я получу график с линиями, соединяющими точки (1,1), (1,2) и (2,2). Есть ли способ соединить конечную точку с первой, завершив таким образом квадрат на участке?

Я также вытягиваю строки текста с точками, поэтому просто добавить еще одну точку 1,1 не вариант.

Ответы [ 3 ]

10 голосов
/ 17 декабря 2011

impoly может быть полезным, однако создает изменяемую кривую, которая медленнее графика.

Вы можете написать простую функцию для этого:

function plotc(x,y,varargin)  
    x = [x(:) ; x(1)];   
    y = [y(:) ; y(1)];  
    plot(x,y,varargin{:})  
end

Кстати, оператор двоеточия (:) используется как средство защитного программирования. Таким образом, x и y могут быть векторами строк или столбцов.

varargin позволяет использовать дополнительные параметры, такие как:

 plotc(x,y,'Color','r');
 plotc(x,y,'Parent',a,'LineWidth',2);
2 голосов
/ 17 декабря 2011

У вас есть набор инструментов для обработки изображений? Если да,

 impoly(hparent, position, 'Closed')

может быть полезным для вас.

http://www.mathworks.de/help/toolbox/images/ref/impoly.html

2 голосов
/ 17 декабря 2011

Если ваши последние и последние точки не совпадают, то plot не будет знать, что вы хотите замкнутую кривую.Поэтому либо добавьте дополнительную точку в свой список для построения графика, либо попробуйте использовать, например, rectangle.

...