inpolygons
inpolygons.m Documentation
This function checks whether a point or points is inside one or more polygons. The polygons can have holes in them. When dealing with a large number of points and/or polygons, this can be faster that inpolygon.m.
Syntax
in = inpolygons(x,y,xv,yv)
[in, index] = inpolygons(x,y,xv,yv)
See function help for description of input and output variables.
Example
We'll start with two polygons: a rectangle with square- and triangle-shaped holes, and a solid diamond:
xv = [1 1 7 7 1 NaN 2 3 3 2 2 NaN 5 6 5 5 NaN 7 8 9 8 7];
yv = [1 4 4 1 1 NaN 2 2 3 3 2 NaN 2 2 3 2 NaN 8 9 8 7 8];
[f, v] = poly2fv(xv, yv);
patch('Faces', f, 'Vertices', v, ...
'FaceColor', [.9 .9 .9], ...
'EdgeColor', 'none');
Now, we scatter a couple hundred random points, and test which polygons they fall into.
x = 10 * rand(200,1);
y = 10 * rand(200,1);
[in, index] = inpolygons(x, y, xv, yv);
index = cell2mat(index); % No overlapping polygons allows this.
plot(x(in), y(in), 'r.', x(~in), y(~in), 'b.');
plot(x(index==1), y(index==1), 'go', x(index==2), y(index==2), 'mo');
Citation pour cette source
Kelly Kearney (2024). inpolygons (https://github.com/kakearney/inpolygons-pkg), GitHub. Récupéré le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
- Mathematics and Optimization > Mapping Toolbox > Data Analysis >
- Radar > Mapping Toolbox > Data Analysis >
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
inpolygons
Les versions qui utilisent la branche GitHub par défaut ne peuvent pas être téléchargées
Version | Publié le | Notes de version | |
---|---|---|---|
1.1.0.1 | linked GitHub readme |
|
|
1.1.0.0 | Linked to GitHub repository |
|
|
1.0.0.0 |