如何矢量化寻找向量中最近的点

2023-12-11

BigList = rand(20, 3)
LittleList = rand(5, 3)

我想为大列表中的每一行找到小列表中“最接近”的行,如欧几里德范数所定义(即 k=3 维度中相应值之间的距离平方和)。

我可以看到如何使用两个循环来执行此操作,但似乎应该有更好的方法使用内置矩阵运算来执行此操作。


正确的方法当然是使用最近邻搜索算法.
但是,如果您的维度不太高并且数据集不大,那么您可以简单地使用bsxfun:

d = bsxfun( @minus, permute( bigList, [1 3 2] ), permute( littleList, [3 1 2] ) ); %//diff in third dimension
d = sum( d.^2, 3 ); %// sq euclidean distance
[minDist minIdx] = min( d, [], 2 );

除了提出的矩阵乘法方法之外here,还有另一种不带循环的矩阵乘法

nb = sum( bigList.^2, 2 ); %// norm of bigList's items
nl = sum( littleList.^2, 2 ); %// norm of littleList's items
d = bsxfun( @sum, nb, nl.' ) - 2 * bigList * littleList'; %// all the distances

该方法背后的观察是对于欧几里德距离(L2-范数)

|| a - b ||^2 = ||a||^2 + ||b||^2 - 2<a,b> 

With <a,b>是两个向量的点积。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何矢量化寻找向量中最近的点 的相关文章

  • 两个 y 轴与相同的 x 轴[重复]

    这个问题在这里已经有答案了 可能的重复 在单个图中绘制 4 条曲线 具有 3 个 y 轴 https stackoverflow com questions 1719048 plotting 4 curves in a single plo
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • MATLAB 中的多个捕获组

    我有一个包含数字或字母的字符串a 可能紧随其后的是r or l 在 MATLAB 中 以下正则表达式返回为 gt gt regexp 10r 0 9 a l r match ans 10r 我希望10 and r分开 因为我有两个捕获组 有
  • 为什么旋转 3D 点云后顶点法线会翻转?

    我有两个人脸 3D 点云样本 蓝色点云表示目标面 红色点云表示模板 下图显示目标面和模板面在不同方向上对齐 目标面大致沿 x 轴 模板面大致沿 y 轴 Figure 1 The region around the nose is displ
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • Numpy:查找两个 3-D 数组之间的欧几里德距离

    给定两个维度为 2 2 2 的 3 D 数组 A 0 0 92 92 0 92 0 92 B 0 0 92 0 0 92 92 92 如何有效地找到 A 和 B 中每个向量的欧几里得距离 我尝试过 for 循环 但速度很慢 而且我正在按 g
  • 使用符号求解器仅求解某些变量

    我正在尝试在 MATLAB 中求解包含 3 个变量和 5 个常量的方程组 是否可以使用solve求解三个变量 同时保持常量为符号而不用数值替换它们 当您使用SOLVE http www mathworks com access helpde
  • 如何告诉 mex 链接到 /usr/lib 中的 libstdc++.so.6 而不是 MATLAB 目录中的 libstdc++.so.6?

    现在 MATLAB 2012a 中的 mex 仅正式支持 gcc 4 4 6 但我想使用 gcc 4 7 风险自负 现在如果我直接用 mex 编译一些东西 它会抱怨 usr lib gcc i686 linux gnu 4 7 cc1plu
  • 黑白随机着色的六角格子

    我正在尝试绘制一个 10 000 x 10 000 随机半黑半白的六边形格子 我不知道如何将该格子的六边形随机填充为黑色和白色 这是我真正想要从这段代码中得到的示例 但我无法做到 https i stack imgur com RkdCw
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 图像处理 - 使用 opencv 进行服装分割

    我正在使用 opencv 进行服装特征识别 第一步 我需要通过从图像中移除脸部和手来分割 T 恤 任何建议表示赞赏 我建议采用以下方法 Use 阿德里安 罗斯布鲁克的用于检测皮肤的皮肤检测算法 谢谢罗莎 格隆奇以获得他的评论 在方差图上使用
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • 如何在MATLAB中显示由三个矩阵表示的图像?

    我有 3 个相同大小的 2D 矩阵 假设 200 行和 300 列 每个矩阵代表三种 基本 颜色 红色 绿色和蓝色 之一的值 矩阵的值可以在 0 到 255 之间 现在我想组合这些矩阵以将它们显示为彩色图像 200 x 300 像素 我怎样
  • MATLAB 类的 Description 和DetailedDescription 属性

    内置 MATLAB 类具有 Description 和 DetailedDescription 属性的值 gt gt handle ans meta class handle Package meta Properties Name han
  • 如何在 MATLAB 中绘制纹理映射三角形?

    我有一个三角形 u v 图像中的坐标 我想在 3D 坐标处绘制这个三角形 X Y Z 与图像中的三角形进行纹理映射 Here u v X Y Z都是具有三个元素的向量 代表三角形的三个角 我有一个非常丑陋 缓慢且令人不满意的解决方案 其中我
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan

随机推荐

  • C# HttpClient 和 API

    我有一个 Web 应用程序 它使用 HttpClient 类从 API 中提取数据 我有几个问题 HttpClient 是从 API 获取数据的最佳选择吗 我从 APi 获取一个字符串并将其反序列化为一个对象 每次使用时都会创建 HttpC
  • Python 中如何确定范围[重复]

    这个问题在这里已经有答案了 为什么第二个函数中的第一个 print 语句会抛出错误x没有定义 x 5 def function a print x def function b print x x 7 print x 运行第一个函数会得到以
  • ubuntu 16.04 nginx 更改 phpmyadmin url 不起作用

    Ubuntu 16 04 5 LTS Xenial 4 18 8 x86 64 linode117 nginx version nginx 1 10 3 Ubuntu php v7 0 32 0ubuntu0 16 04 1 etc ngi
  • matplotlib 在 IPython 中不使用 matplotlibrc 文件

    我最近从 matplotlib v1 5 3 从 v2 0 0 升级 但通过此更改 matplotlib 在绘制图形时似乎不再使用我编辑的 matplotlibrc 文件 当我打开 matplotlibrc 文件时 我看到我的更改实际上已实
  • Shiny - 使用 for 循环插入 UI 在每个输出中返回相同的元素

    我想在我的 Shiny 应用程序中插入非预定义数量的图表 我使用了一个for循环和一系列的insertUI 问题是当我运行它时 文本元素的行为符合预期 但图形都呈现相同的图像 我怎样才能防止这种情况发生 这是一个代表 library shi
  • 复制 TreeView 节点

    我正在尝试将选定的树视图节点复制到剪贴板 以便可以将其粘贴到记事本中 这是我的代码 但它不起作用 TreeNode selNode TreeNode this treeView1 SelectedNode Clipboard SetData
  • 尝试使用正则表达式删除Python中的字符EM DASH“—”(—)

    我得到了这个顽固的 EM DASH 字符 我试图使用正则表达式删除它 但由于某种原因我无法让它工作 这是我正在使用的代码 editedSource re sub r u2014 str source 我在这里做错了什么 我很确定我得到了正确
  • 如何表达复数的四分函数

    确实存在所谓的超操作序列 它的工作原理就像你构建乘法一样a b a a a a a并添加了许多a重复b次 然后是求幂a b a a a a a与许多乘法a重复b次 然后 就出现了四联 表示为指数塔 就像a b a a a a 重复b tim
  • 将具有 Alpha 通道的图像复制到具有自定义背景颜色的剪贴板?

    Code private void Foo Canvas canvas The content is a bit larger Size size new Size canvas ActualWidth 1 1 canvas ActualH
  • x86汇编linux中如何解释系统调用

    我对为什么 如何在 Linux 环境中的 x86 程序集中打印一个值感到困惑 例如 如果我想打印一个值 我会这样做 mov eax 4 mov ebx 1 mov ecx msg mov edx msgLength int 80h 现在我明
  • AKS 创建的服务主体密码过期

    我使用 创建 Kubernetes 集群 功能在 Azure 门户中创建了 AKS 集群 并允许其创建新的服务主体 我开始怀疑该委托人使用的凭证是否过期 为了避免 K8s 在凭证过期时与 Azure 通信出现问题 我开始查看已创建的帐户 如
  • jQuery Mobile 在一个对话框中显示多个对话框

    我已经搜索过 但没有找到这样做的例子 我希望能够为 jQM 打开一个对话框 并在一个对话框内进行逐步过程 我认为这需要将多个对话框加载到一个对话框中 并且不知道这是否可行 我们将 Backbone 与 jQM 结合使用 并希望能够在对话框中
  • 维持 mgo 会话的最佳实践

    我目前正在使用带有 mgo lib 的 mongodb 作为 Web 应用程序 但我不确定我使用它的方式是否良好 package db import gopkg in mgo v2 const MongoServerAddr 192 168
  • pymongo 按日期时间分组

    我试图按日期字段 日期时间 搜索集合和分组记录 我知道 pymongo 将它们转换为背景上的正确类型 ISODate 或类似的东西 问题是 由于日期时间对象具有日期 时间 时区 我如何告诉组运算符仅使用日期部分 因为否则我不会得到所需的分组
  • ASP.NET AJAX 返回 JSON 但未识别为 JSON

    我有这个功能可以让我返回经理列表 function getManagers var jqxhr ajax type POST contentType application json charset utf 8 url webservice
  • 第一个 postLink() 不创建表单

    使用已经存在的代码烘焙成 CRUD 我有以下代码删除一个项目 问题是它说谎了包裹在 FORM 标签中 所以最终发生的是Cake 不包含 postLink 将提交的表单 是否有另一种方法即使在我增加安全设置时仍然可以保持 Cake 基础设施的
  • 用Python发送广播

    我正在尝试学习编写套接字 在Python 3中 我只是尝试从服务器发送广播并从客户端接收它 我的问题是 每当我尝试将数据包发送到 255 255 255 255 时 似乎实际上没有发送任何内容 我尝试使用wireshark查找数据包 但除了
  • 当我复制电子表格时,脚本/触发器不起作用

    我创建了一个电子表格onEdit 基于名为的函数的触发器fillvalues 而且效果很好 我需要制作此电子表格的多个副本 因为它用于制作工作报告 但是当我制作副本时 脚本不起作用 因为触发器处于非活动状态或者需要授权才能运行 如何克服这个
  • 如果 Flask 上不存在表,如何使用 SQLAlchemy 创建表?

    我正在使用 SQLAlchemy 并且有以下代码 Model class User db Model tablename user table args schema task useexisting True id Column Inte
  • 如何矢量化寻找向量中最近的点

    BigList rand 20 3 LittleList rand 5 3 我想为大列表中的每一行找到小列表中 最接近 的行 如欧几里德范数所定义 即 k 3 维度中相应值之间的距离平方和 我可以看到如何使用两个循环来执行此操作 但似乎应该