【Matlab】基于KDtree的最近邻搜索和范围搜索
1.【数学公式】mathtype和word2016集成2.【MathType】word2016数学公式编号
3.【Matlab】基于KDtree的最近邻搜索和范围搜索
4.【Matlab】判断点和多面体位置关系的两种方法实现5.《空间三角面片对相交判断算法》的matlab实现_ 0.2微秒6.Mpmath库-学习笔记7.有限元方法[Matlab]-笔记8.结构动力学教材-学习笔记9.复合材料力学基础及有限元分析10.【数值计算方法】数值积分&微分-python实现11.【数值计算方法】2&3维高斯积分的python实现12.【数值计算方法】线性方程组的迭代解法13.【数值计算方法】线性方程组迭代算法的Python实现14.【数值计算方法】线性方程组的迭代解法-数值实验15.【数值计算方法】非线性方程求根16.【数值计算方法】非线性方程求根-数值实验17.【数值计算方法】常微分方程初值问题的数值解18.Note_Fem边界条件的处理和numpy实现的四种方法摘要:介绍Matlab的rangesearch()函数和knnsearch()函数。
rangesearch() —— 根据给定k-维数据集,返回指定距离范围内的所有数据点
knnsearch() —— 根据给定k-维数据集,返回最近的K个数据点
%% 给定数值矩阵(input data),返回最近点的K个点 % data matrix,100 x 3,表示100个空间点 data = [hospital.Age, hospital.Weight, 66 * rand(100, 1)]; % 绘制空间点 scatter3(data(:, 1), data(:, 2), data(:, 3), 36, [1 0 0], "filled", "o") hold on zlabel 'Z' % 目标点有两个 targetPoint = [50 162 21; 12 180 31]; % 绘制目标点 scatter3(targetPoint(:, 1), targetPoint(:, 2), targetPoint(:, 3), 72, "magenta", "filled", "hexagram") hold on tic % 搜索目标点周围最近的3个点,返回值为data matrix的row index. id = knnsearch(data, targetPoint, "Distance", "euclidean", "K", 3, "NSMethod", "kdtree"); toc result = data(reshape(id,[1,6]), :); % 绘制result 点 scatter3(result(:, 1), result(:, 2),result(:,3), 72, "blue", "filled", "square")
%% rangesearch():返回指定距离内的所有行索引 % dataCloud是10维数据,545580个数据点。 data = dataCloud(:,1:3); % 绘制散点 scatter3(data(:, 1), data(:, 2), data(:, 3), 12, [1 0 0], "filled", "o") hold on zlabel 'Z' targetPoint = [40164.5 139.539 496.914]; % 绘制目标点 scatter3(targetPoint(:, 1), targetPoint(:, 2), targetPoint(:, 3), 36, "magenta", "filled", "hexagram") hold on tic % knn search using input data,直接给定数据集,搜索半径为50 id = rangesearch(data(:, 1 : 3), targetPoint, 50, "NSMethod", "kdtree", "Distance", "euclidean"); toc result = data(id{1}, :); % 绘制result 点 scatter3(result(:, 1), result(:, 2), result(:, 3), 72, "blue", "filled", "square")
%% 先创建KDtree model ,以此为基础返回范围内的点 data = dataCloud; % 绘制散点 scatter3(data(:, 1), data(:, 2), data(:, 3), 12, [1 0 0], "filled", "o") hold on zlabel 'Z' targetPoint = [40235.1142325237 -128.940013761462 738.5117255760920]; % 绘制目标点 scatter3(targetPoint(:, 1), targetPoint(:, 2), targetPoint(:, 3), 36, "magenta", "filled", "hexagram") hold on mdl = KDTreeSearcher(data(:, 1 : 3), "Distance", 'euclidean'); tic % knn search using KDtree model,直接给定数据集,搜索半径为50 id = rangesearch(mdl, targetPoint, 50, "Distance", "euclidean"); toc result = data(id{1}, :); % 绘制result 点 scatter3(result(:, 1), result(:, 2), result(:, 3), 72, "blue", "filled", "square")
本文来自博客园,作者:FE-有限元鹰,转载请注明原文链接:https://www.cnblogs.com/aksoam/p/17591563.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗