303 views (last 30 days)

Show older comments

Example: I wanna calculate the area of the boundary of set 2d-data as below illustration: I use the code(polyarea) as follows:

clear;clc;

x=[1;5;5;1;2];

y=[5;5;1;1;3];

plot(x,y,'.')

k = boundary(x,y);% generate boundary of data points

hold on;

plot(x(k),y(k));

A = polyarea(x,y);%calculate the area of boundary

But the result is: 12 <--- wrong???

How can I fix it?

Roger Stafford
on 7 Feb 2018

I would advise you to "close" the polygon so that the first point is the same as the last point. Otherwise, Matlab may be a bit confused as to how the polygon is defined.

x=[1;5;5;1;2;1];

y=[5;5;1;1;3;5];

Niklas Kurz
on 15 Jul 2020

Mehdi Mosafer
on 1 Nov 2018

There is a simpler way; just get the 2nd output of the function "boundary:"

[k,A] = boundary(x,y)

Here, "A" is the area.

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!