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.
Bruno Luong (2020). 2D polygon interior detection (https://www.mathworks.com/matlabcentral/fileexchange/27840-2d-polygon-interior-detection), MATLAB Central File Exchange. Retrieved .
Why it is giving me blank output? My data and code is ok
Reema, you need
1. Having the C compiler installed
2. to compile the C-mex file by runing insidepoly_install.m
I'm getting this error where is insidepoly_dblengine?
Undefined function or variable 'insidepoly_dblengine'.
Error in insidepoly>insidepoly1 (line 371)
[in on] = insidepoly_dblengine(x, y, Px1, Py1, Px2, Py2, ontol, ...
Error in insidepoly (line 17)
Really fast and gives same results as inpolygon Matlab version.
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:
To Matt: this is algorithm designed for for generic polygons (as with INPOLYGON)
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