6

比如说,我有...

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

我将得到一个连接点 (1,1)、(1,2) 和 (2,2) 的线的图。有什么办法可以将最后一点与第一个点连接起来,从而完成情节上的正方形?

我也在用点拉入文本行,所以简单地添加另一个点 1,1 不是一种选择。

4

3 回答 3

10

impoly可能很有用,但是,它会创建一条比 plot 慢的可修改曲线。

您可以为此编写一个简单的函数:

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

顺便说一句,(:)冒号运算符被用作防御性编程手段。这样,xy可以是行向量或列向量。

varargin允许使用其他参数,例如:

 plotc(x,y,'Color','r');
 plotc(x,y,'Parent',a,'LineWidth',2);
于 2011-12-17T15:10:16.773 回答
2

除非您的最后一点和最后一点相同,plot否则不会知道您想要一条闭合曲线。因此,要么在列表中添加一个额外的点以进行绘图,要么尝试使用,例如rectangle.

于 2011-12-17T13:34:49.747 回答
2

你有图像处理工具箱吗?如是,

 impoly(hparent, position, 'Closed')

可能对你有用。

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

于 2011-12-17T13:37:29.293 回答