File Exchange

image thumbnail

2D polygon interior detection

version 1.1 (24.2 KB) by

Detect a whereas a point is interior or exterior to a 2D polygon



View License

This function tries to improve the slow Matlab INPOLYGON function.

There are few other fast codes on FEX (e.g., by Darren Engwirda). After exploring many different ways, I come to the conclusion that Darren Engwirda's approach is close to optimal. So here you'll find a general method that share many common aspects, but implemented in C-Mex. I have makes few contributions: (1) a lean C-implementation, (2) Using Matlab SORT and HISTC for binning, (3) Derive an empirical rule when to apply the sorting, (4) a more rigorous on-boundary detection.

Comments and Ratings (7)


Really fast and gives same results as inpolygon Matlab version.

Alex Barnett

This code is great. 100x faster on large-scale problems than even the latest version of MATLAB I have (R2015b), amazingly! You can run my tests (within mpspack) at:




David (view profile)

Bruno Luong

Bruno Luong (view profile)

To Matt: this is algorithm designed for for generic polygons (as with INPOLYGON)

Matt J

Matt J (view profile)

Does this submission apply to convex polygons or general ones? If the latter, there should be a way to make it faster if the polygon is known a priori to be convex. Perhaps an input parameter to enable this...



Change the criteria to trigger the presorting step

MATLAB Release
MATLAB 7.10 (R2010a)

Inspired: Flow Cytometry GUI for Matlab

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video