在一个地区找到禁区
17日视图(30天)
显示旧的评论
答案(1)
彰Agata
2019年11月11日
通过使用
polyshape
,
简化
和
地区
功能,您可以获得polyshape对象为每一个封闭的区域。下面是一个例子:
负载(“Data.mat”);
pgonAll = polyshape(数据(:1),数据(:,2),“简化”、假);
pgonAll =简化(pgonAll);
pgonEach =区域(pgonAll);
图
情节(数据(:1),(2):,)
持有在
情节(pgonEach (2))
传奇({“数据”,“pgonEach (2)”},“字形大小”,12)
2的评论
彰Agata
2019年11月13日
嗨Armin-san,
谢谢你的回应。
>使用多边形,然后关闭“简化”,使用一遍“简化”命令(为什么?)。
这是因为,在你的情况下,
polyshape
函数返回警告消息时,将“简化”。所以我分开每一个步骤。(以防,请注意这个警告消息只是“警告”。输出成为相同)
>我的问题是,如何选择封闭的地区。
好的。
使用顶点的事实不跳突然封闭面积(s),你可以提取这些polyshape(年代)。下面是一个例子。我希望这将帮助你!
负载(“Data.mat”);
pgonAll = polyshape(数据(:1),数据(:,2),“简化”、假);
pgonAll =简化(pgonAll);
pgonEach =区域(pgonAll);
%找到polyshape (s)的相邻顶点不“跳”
% (e。g距离> 1)
idx = false(大小(pgonEach));
为kk = 1:元素个数(pgonEach)
v = pgonEach .Vertices(乐);
d = vecnorm (diff (v)、2、2);
如果所有(d < 1)
idx (kk) = true;
结束
结束
%提取目标polyshape (s)
pgonEach = pgonEach (idx);
%可视化
图
情节(数据(:1),(2):,)
持有在
如果~ isempty (pgonEach)
为kk = 1:元素个数(pgonEach)
情节(pgonEach (kk))
结束
结束