Соединение конечной и начальной точек на простом X-y графике (построение замкнутой кривой / многоугольника)

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

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

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

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

3 ответов


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);

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


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

 impoly(hparent, position, 'Closed')

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

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