c++ - 选择矩阵中距离另一点 30m 以内的所有点

标签 c++ database data-structures matlab matrix

因此,如果您查看我的其他帖子,就会发现我正在构建一个可以在森林中收集数据并将其粘贴在 map 上的机器人。我们拥有可以检测树木中心和树干直径并将它们贴在笛卡尔 XY 平面上的算法。

我们计划使用某些“关键”树作为定位机器人的自然地标,使用三角测量和三边测量等方法,但仅使用 Matlab 对其进行编程并保持数据的直接和高效变得越来越困难。

是否有对点数组或矩阵进行子设置的技术?假设我在 1 公里(1000 米)范围内存储了 1000 棵树,有没有办法说,只选择我当前位置 30 米半径范围内的点并只使用这些点?

我只想使用 GIS,但我是在 Matlab 中执行此操作,而且我不知道有任何适用于 Matlab 的 GIS 插件。

忘了说了,这段代码是上线的,意思是在机器人上实时执行。我不知道,随着 map 增长到几英里,使用不同的数据结构是否会有帮助,或者计算到随机点的每个距离是否是空间数据库无论如何都会做的事情。

我正在考虑将树数组镜像成两个数组,一个按 X 排序,另一个按 Y 排序。然后冒泡排序以确定其中的 30m 范围。我对 X 和 Y 两个数组都执行相同的操作,然后有第三个交叉链接表将选择各个值。但我不知道那叫什么,如何编程,我敢肯定有人已经有了,所以我不想重新发明轮子。

Cartesian Plane
GIS

最佳答案

您正在寻找类似 quadtree 的空间数据库或 kd-tree .我发现了两个 kd-tree 实现 herehere , 但没有找到任何适用于 Matlab 的四叉树实现。

关于c++ - 选择矩阵中距离另一点 30m 以内的所有点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2814858/

相关文章:

c++ - 从文件中读取数据并将其存储到 vector 中

c++ - 使用 libpng 将 OpenGL 屏幕像素保存为 PNG

loops - 在 Ansible 中迭代嵌套字典,保留键名称

arrays - 使用什么数据结构/数据持久化

ios - 有没有办法使用 Objective C 从 iOS 中的另一个应用程序访问一个应用程序的数据库?

c++ - 我无法找到这些代码段的 Big O 表示法

c++ - 如何使用 C++ 将字符存储在闪存 STM32F4 HAL 中?

c++ - 64位减法结果转32位整数

jQuery 使用 getJSON 将数据写入 .json 文件

sql-server - 将一个表格行映射到另一个表格多行