matlab inpolygon 判断点在多边形内
如何判断一个点在多边形内部?
xv= [0 3 3 0 0]; %x坐标
yv= [0 0 3 3 0];%y坐标
x=1.5;
y=1.5;
in=inpolygon(x,y,xv,yv)
plot(xv,yv,x(in),y(in),'.r',x(~in),y(~in),'.b')
in=1;
xv= [0 3 3 0 0]; %x坐标
yv= [0 0 3 3 0];%y坐标
x=4;
y=4;
in=inpolygon(x,y,xv,yv)
plot(xv,yv,x(in),y(in),'.r',x(~in),y(~in),'.b')
in=0;
===================from 气象家园
http://bbs.06climate.com/forum.php?mod=viewthread&tid=12340
[lon lat]=meshgrid([97:0.1:107],[21:0.1:30]);
% Z=griddata(gy_locat(:,2),gy_locat(:,3),EOF_used(:,1),lon,lat,'v4');
yunnan=shaperead('yunnan.shp');
isin=inpolygon(lon,lat,yunnan.Lon,yunnan.Lat);
Z(~isin)=NaN;
contourf(lon,lat,Z,30);
shading flat
colorbar
hold on
plot(yunnan.X,yunnan.Y,'-k','linewidth',3)
hold off
=============
http://bbs.06climate.com/forum.php?mod=viewthread&tid=13304
来论坛有段时间了,学了不少东西,今天也分享一个自己的经验。
今天看到一个帖子matlab中地图边界与掩膜(去掉边界外区域)的实现(基于shape文件)
我也来分享一个画图去外边界的方法,不知道以前的帖子没有介绍此方法的。
之前发的有个小错,修改了一下
具体程序如下:
lon_c=69.75:0.5:140.25;
lat_c=14.75:0.5:55.25;
lon_c=ones(82,1)*lon_c;
lat_c=ones(142,1)*lat_c;
lat_c=lat_c';
basemap = shaperead('D:\map\beijing.shp');
for ii=1:size(lat_c,1)%修改这里来个循环,貌似inpolygon变量只能是向量,不能是矩阵
for jj=1:size(lat_c,2)
IN(ii,jj)= inpolygon(lon_c(ii,jj),lat_c(ii,jj),basemap.X,basemap.Y);%进行‘白化’的关键函数,具体可参见帮助
end
end
v(IN==0)=nan;
........
[ac ah]=contourfm(lat_c,lon_c,v);
........
对于白化用的函数inpolygon,我目前只应用于一个多边形的外边界,至于多个多边形的地图(好像上海、浙江是这样的吧??),没有试过,不知道效果,大家也可以试一试
最新文章
- Android 第一http请求访问慢,以后就快了的问题
- uva 10934(dp)
- qt如何实现一个渐隐窗口呢(开启的时候他是从上往下渐渐显示)
- #define的一些
- CentOS7下配置Openvpn 2.3.12
- asp.net web编程开发将model键值对化
- linux删除、移动、拷贝时,加-f仍然会提示的解决办法
- MVC3+EF4.1学习系列(三)-----排序 刷选 以及分页
- Linux 虚拟机安装后的配置和一些命令符笔记
- AJAX的原理
- 3D Slicer中文教程(一)—下载及安装方法
- 动态规划——Split Array Largest Sum
- java分布式电子商务云平台b2b b2c o2o需要准备哪些技术??
- pandas数据清洗策略2
- vue中computed和watch
- Element Select 回显
- 请求神器 postman安装
- Eclipse设置智能提示
- UVA-10689 Yet another Number Sequence (矩阵二分幂模板)
- 【我的Android进阶之旅】解决Android Studio 运行gradle命令时报错: 错误: 编码GBK的不可映射字符