inpolygon counting points within holes
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello,
I am attempting to find whether points fall within areas on a map. I've decided to do this using inpolygon. I've been having trouble with areas with holes and I have no idea why. Here is an example:
load("matlabest.mat")
test2=polyshape(test)
plot(test2)
As we can see from this shape, the point (-75.6,40.51) falls within the hole of this shape. Therefore, inpolygon should return 0. Let's test this:
inpolygon(-75.6,40.51,test(:,1),test(:,2))
I really don't understand why this is happening, as my example here is almost identical to the example given in the literature for inpolygon, just on a larger scale. I thought it had something to do with the NaNs I inserted to split between the coordinates of the hole and the actual shape, but the example in the literature does the same thing, so I don't think its that. I'm not sure what else it could be, so could someone please help me out?
Thanks
댓글 수: 0
채택된 답변
Aditya
2024년 7월 31일
Hi Alan,
It seems that the data "test" contains NaN values somewhere which is creating the issue.
you could either use:
isInside = isinterior(test2, -75.6, 40.51);
or you can modify your code to use test2 directly:
inpolygon(-75.6,40.51,test2.Vertices(:,1),test2.Vertices(:,2))
Refer to the below MATLAB documentation to read more about "isinterior" function:
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Elementary Polygons에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!