Connecting final and initial point in simple x-y plot (Plotting closed curve/polygon)

后端 未结 3 727
情歌与酒
情歌与酒 2021-01-12 20:39

Say, for example, I had ...

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

I will get a plot with lines connecting the points (1,1), (1,

相关标签:
3条回答
  • 2021-01-12 20:49

    Do you have the Image Processing Toolbox? If yes,

     impoly(hparent, position, 'Closed')
    

    might be of use to you.

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

    0 讨论(0)
  • 2021-01-12 21:10

    impoly can be useful, however, it creates a modifiable curve which is slower than plot.

    You can write a simple function for that:

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

    By the way, the (:) colon operator is used as defensive programming means. In this way, x and y can be either row or column vectors.

    The varargin allows using additional parameters, like:

     plotc(x,y,'Color','r');
     plotc(x,y,'Parent',a,'LineWidth',2);
    
    0 讨论(0)
  • 2021-01-12 21:13

    Unless your final and last points are the same then plot won't know that you want a closed curve. So either add an additional point to your list to plot or try using, for example, rectangle.

    0 讨论(0)
提交回复
热议问题