Matlab中使用容差为散点数据分组

这篇博客介绍了如何通过创建二维点集,利用Matlab的ismembertol函数,根据数据点与网格点的邻近度进行分组。首先,绘制随机散点和网格点,然后计算散点数据中哪些点位于网格点的容差范围内,并对这些点进行标绘,展示了一种有效的数据分组和可视化技术。
摘要由CSDN通过智能技术生成

展示如何根据散点数据点与相关点的邻近度对其进行分组。

        创建一个随机二维点集。然后创建并在随机数据的上方绘制等距点网格。

x = rand(10000,2);
[a,b] = meshgrid(0:0.1:1);
gridPoints = [a(:), b(:)];
plot(x(:,1), x(:,2), '.')
hold on
plot(gridPoints(:,1), gridPoints(:,2), 'xr', 'Markersize', 6)

         使用 ismembertol,在 x 内查找处于 gridPoints 中的网格点容差范围内的数据点。将以下选项与 ismembertol 配合使用:

  • 将 ByRows 指定为 true,因为点坐标在 x 的行中。

  • 将 OutputAllIndices 指定为 true,以返回 x 中处于 gridPoints 对应行容差范围内的行的所有索引。

[LIA,LocB] = ismembertol(gridPoints, x, 0.05, ...
    'ByRows', true, 'OutputAllIndices', true);

针对每个网格点,标绘 x 中处于该网格点容差范围内的点。

figure
hold on
for k = 1:length(LocB)
    plot(x(LocB{k},1), x(LocB{k},2), '.')
end
plot(gridPoints(:,1), gridPoints(:,2), 'xr', 'Markersize', 6)

则:

x = rand(10000,2);
[a,b] = meshgrid(0:0.1:1);
gridPoints = [a(:), b(:)];
plot(x(:,1), x(:,2), '.')
hold on
plot(gridPoints(:,1), gridPoints(:,2), 'xr', 'Markersize', 6)

[LIA,LocB] = ismembertol(gridPoints, x, 0.05, ...
    'ByRows', true, 'OutputAllIndices', true);

figure
hold on
for k = 1:length(LocB)
    plot(x(LocB{k},1), x(LocB{k},2), '.')
end
plot(gridPoints(:,1), gridPoints(:,2), 'xr', 'Markersize', 6)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值