Matlab:比较两个不同长度和不同值的向量?

2023-12-25

假设我有两个长度不同的向量 A 和 BLength(A) is not equal to Length(B)并且向量 A 中的值与向量 B 中的值不同。我想将 B 的每个值与 A 的值进行比较(比较意味着值 B(i) 是否与向量 B 的值几乎相同)A(1:end)例如B(i)-Tolerance<A(i)<B(i)+Tolerance.

我怎样才能做到这一点而不使用for loop因为数据很大?

I know ismember(F)、 intersect、repmat、find 但这些功能都不能真正帮助我


您可以尝试以下解决方案:

tol = 0.1; 

N = 1000000; 

a = randn(1, N)*1000; % create a randomly

b = a + tol*rand(1, N); % b is "tol" away from a

a_bin = floor(a/tol); 
b_bin = floor(b/tol); 

result = ismember(b_bin, a_bin) | ...
         ismember(b_bin, a_bin-1) | ...
         ismember(b_bin, a_bin+1); 

find(result==0) % should be empty matrix. 

这个想法是将 a 和 b 变量离散化为大小的容器tol。然后,询问是否在与 a 中的任何元素相同的容器中找到 b,或者在其左侧的容器中或在其右侧的容器中找到 b。

优点: 我相信ismember里面很聪明,首先对元素进行排序a然后对每个元素 b 执行次线性 (log(N)) 搜索。这与显式构造 b 中每个元素与 a 中元素的差异的方法不同,这意味着复杂性与 a 中元素的数量呈线性关系。

比较: for N=100000这在我的机器上运行了 0.04 秒,而使用线性搜索则运行了 20 秒(使用艾伦的漂亮简洁的计时tf = arrayfun(@(bi) any(abs(a - bi) < tol), b);解决方案)。

缺点:这导致实际公差为 tol 和 1.5*tol 之间的任何值。取决于您的任务是否可以忍受(如果唯一关心的是浮点比较,您可以)。

注意:这是否是可行的方法取决于 a 和 b 的范围以及 tol 的值。如果 a 和 b 可以非常大并且 tol 非常小,则a_bin and b_bin将无法解析单个垃圾箱(然后您将不得不使用整数类型,再次仔细检查它们的范围是否足够)。带循环的解决方案是一种更安全的解决方案,但如果您确实需要速度,则可以投资优化所提出的想法。当然,另一种选择是编写 mex 扩展。

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

Matlab:比较两个不同长度和不同值的向量? 的相关文章

  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • Ilnumerics Ilpanel 在 winform 中编译成 dll 并加载到 matlab 时不激活

    我想将 Visual studio 2012 中用 C 编写的 winform 编译为 dll 然后将其加载到 matlab 2013a 中 然后 我想使用 matlab net 接口与 winform 进行交互 侦听其事件并通过一组预定义
  • matlab中更快的插值方法

    我正在使用 interp1 来插值一些数据 temp 4 30 4 rand 365 10 depth 1 10 dz 0 5 define new depth interval bthD min depth dz max depth ne
  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • 通过多次合并相同的行向量来构建矩阵

    有没有一个matlab函数可以让我执行以下操作 x 1 2 2 3 然后基于x我想建立矩阵m 1 2 2 3 1 2 2 3 1 2 2 3 1 2 2 3 您正在寻找REPMAT http www mathworks com help t
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 使用简单矩阵乘法时出错

    我在一次简单的乘法运算中偶然发现了一个错误 这让我感到非常惊讶 我一直以为这里发生了什么 只为矩阵乘法 http www mathworks nl help matlab matlab prog operators html x 2 y z
  • MATLAB 变量传递和惰性赋值

    我知道在 Matlab 中 当将新变量分配给现有变量时 会进行 惰性 评估 例如 array1 ones 1 1e8 array2 array1 的价值array1不会被复制到array2除非元素array2被修改 由此我推测Matlab中
  • 优先连接,Matlab 中的复杂网络

    大家好 我现在正在 MATLAB 中研究优先附件模型 在理解以下内容时遇到一些困难 假设我一开始有 4 个节点 连接如下 time 0 1 lt gt 2 3 lt gt 4 在下一个时间步骤中 我添加一个节点和 4 个连接 然后添加另一个
  • 如何从 matlab 调用 Qtproject?

    我在 matlab 中有一个函数可以写入一个 file txt 我在 qt 项目中使用它 So 当我使用 unix 获取要运行的 qt 编译可执行文件时 我有一个 Matlab 文件 但出现错误 代码 unix home matt Desk
  • 2D 网格的纹理贴图

    我有一组点 x y meshgrid 1 N 1 M 在常规二维上定义 N x M网格 我还有另一组要点 u v 这是原始网格的一些变形 即 u v f x y 但是我没有实际的f导致变形 如何将纹理映射到由定义的 变形 网格u v 即 给
  • 氡变换线检测

    我正在尝试检测灰度图像中的线条 为此 我在 MATLAB 中使用 Radon 变换 我的 m 文件的示例如下所示 我可以使用此代码检测多行 我还使用线条的移位和旋转属性来绘制线条 但是 我不明白在获取rho和theta值后如何获取检测线的起
  • 霍夫变换检测和删除线

    我想使用霍夫变换检测图像中的线条 但是我不想绘制线条 而是想删除原始图像中检测到的每条线条 image imread image jpg image im2bw image BW edge image canny imshow BW fig
  • 基本矩阵错误?

    我试图通过扫描从相机拍摄的两个图像 检测图像中的特征 匹配它们 创建基本矩阵 使用相机内在函数计算基本矩阵 然后分解它以找到旋转和翻译 这是matlab代码 I1 rgb2gray imread 1 png I2 rgb2gray imre
  • 如何从 Matlab 运行 R 脚本 [重复]

    这个问题在这里已经有答案了 我有 m 文件 我想用它来运行 R 脚本 我怎样才能做到这一点 Matlab文件 caller m some matlab code need to call a R script some matlab cod
  • MATLAB 子图标题和轴标签

    我有以下脚本来最终绘制 4 x 2 子图 files getAllFiles preliminaries n size files cases cell 1 n m cell 1 n for i 1 1 n S load files i c
  • 使用正常数据直方图与直接公式进行熵估计(matlab)

    假设我们已经绘制了n 10000标准正态分布的样本 现在我想使用直方图计算其熵来计算概率 1 计算概率 例如使用matlab p x hist samples binnumbers area x 2 x 1 sum p p p area b
  • MATLAB;具有 2+ 个/分割图例的饼图 R2017b

    我正在创建一个饼图 理想情况下希望图例水平显示在顶部和 或底部 然而 在几乎所有情况下 这是不可能的 因为图例超出了数字 因此 我理想情况下希望将图例分成两个 或更多 子图例并单独放置它们 我知道这不是 MATLAB 中的内置功能 我使用的
  • Python 中 Matlab 'fscanf' 的等价物是什么?

    Matlab函数fscanf 似乎很强大 python 或numpy 中是否有相同的等效项 具体来说 我想从文件中读取矩阵 但我不想迭代每一行来读取矩阵 类似的东西 来自 matlab 用于读取 2D 1000x1000 矩阵 matrix
  • MATLAB 图形渲染:OpenGL 与 Painters?

    当谈到使用哪个渲染器来处理 MATLAB 图形或何时它很重要时 我一无所知 但我遇到过某些示例 其中does matter plot 0 0 ko markersize 50 linewidth 8 set gcf renderer ope

随机推荐

  • AngularJS 和解析正文

    我正在尝试使用 AngularJS 创建一个网站 由用户生成的内容驱动 可以使用自定义标签 例如 js code js code 以不同方式显示这些部分内的文本 API 向我发送一个包含标签的正文文本字符串 以便在客户端上进行解析 如果我使
  • 在symfony2中实现日志系统

    我想将一个日志文件集成到我用 symfony2 制作的网站中 我的意思是我想保存用户的每个操作 点击按钮 将请求保存到数据库 那可能吗 有人对此有什么想法吗 登录 Symfony 2 是的 文档中确实描述了这一点 Symfony 2 Coo
  • 移动应用程序中的幽灵点击

    有很多关于幽灵点击的材料 帖子 我正在努力更好地理解它 所以我的理解是 幽灵点击的原因是click触摸事件后约 300 毫秒调度事件 jQuery Mobile 建议 http jquerymobile com test docs api
  • JQuery 文本编辑器粘贴而不带格式

    我在我的网站上使用插件 JQuery 文本编辑器 有时 当用户将预先格式化的 HTML 文本从另一个网站复制并粘贴到插件的文本框中时 它会错误地呈现并中断部分字符串 从数据库检索后可以看到损坏的文本 如果您手动编写此文本 或从框中复制并重新
  • 无法禁用 UITextView 中 UIMenuController 中的默认 UIMenuItems

    我正在尝试配置 U IMenuController 的菜单项以获得类似于 Medium 的 iOS 功能的功能 有各种线程致力于此特定任务 但是尽管有数以万计的视图和不同的结果 包括它不适用于足够多的人 似乎没有一个始终有效的解决方案对于
  • 从 XJC 中导入的架构解析类型定义失败

    我使用 JAXB 获得了此 API 以便通过命名引用方便地使用由 XJC XML 到 Java 编译器从 XML 模式生成的对象模型 它通过各种背景魔法和反射抽象了 JAXB 上下文的创建和查找 ObjectFactory 方法 其基本要点
  • 最佳实践:C# 扩展方法命名空间和推广扩展方法

    我知道已经存在一个post https stackoverflow com questions 1051066 naming conventions for extension method namespaces and sponsor c
  • dyld:未加载库:@rpath/SwiftyJSON.framework/SwiftyJSON

    这是问题的续集 dyld 未加载库 rpath SwiftyJSON framework SwiftyJSON https stackoverflow com questions 31830002 dyld library not load
  • Tensorflow 可视化工具“Tensorboard”在 Anaconda 下无法工作

    我目前正在使用张量流 我想可视化我正在编写的卷积神经网络的效果 但是 我无法使用张量板 我看到 conda 环境下的张量板为 envs tensorenv bin tensorboard python 文件 它导入了它找不到的名为tenso
  • 如何在 Vuejs 中的某些特定文本(变量)中强制翻译 i18n

    在正常情况下 我们只需将翻译属性附加到变量上 例如 this name this t language name 但我想有时用一种特定的语言来具体说明 例如 法语 我们可以做这样的事情吗vue js this name this t lan
  • 如何对字符串使用 .Take() 并在末尾获取字符串?

    LINQ to Objects 支持对字符串对象的查询 但是当我使用如下代码时 string SomeText this is some text in a string return SomeText Take 6 ToString 我得
  • 使用 Terraform 为 IAM 用户设置 AWS 控制台密码

    我是 Terraform 的新手 只是想问是否可以使用 Terraform 为 IAM 用户设置 AWS 控制台密码 我能够配置 IAM 用户 组 其访问权限和密钥 但找不到设置控制台密码的方法 请指出我可以在哪里让它工作 谢谢 可以使用
  • 根据分布生成随机数

    我想根据一些分布生成随机数 我怎样才能做到这一点 您拥有的标准随机数生成器 rand 在 C 语言中经过简单转换后 许多语言中的等价物 是对 0 1 范围内的均匀分布的相当好的近似 如果这就是您所需要的 那么您就完成了 将其转换为在稍大的整
  • ssh 与 Subprocess.popen

    大家好 我遇到了一个小问题 可能我错过了一些明显的东西 但我无法找出问题所在 我有 GUI 其中有一个名为 erp 的按钮 如果我按下它 它应该执行ssh首先到一台名为 主机 ID 名称 的机器 ayaancritbowh91302xy 然
  • django:如何从数据库对象的主键散列 URL?

    我正在尝试为我的数据库对象生成 URL 我读了 http agiliq com books djangodesignpatterns misc html do not use primary keys in urls我不应该使用 URL 的
  • 如何在 swift 中从字节数组创建位图图像

    我有一个来自指纹传感器设备的字节数组 我想用它创建一个位图 我尝试了几个例子 但我得到的只是一个 nil UIImage 如果有任何步骤可以做到这一点 请告诉我 Thanks 这就是我的函数的作用 func didFingerGrabDat
  • 如何将所有祖先设置页面包含在 FitNesse 子维基中?

    我在根级别有一个设置页面 工作正常 但是 当我在 FitNesse 中添加子维基时 我想在子维基级别放置一个设置页面 这会被包含在内 但根级别的 SetUp 不会包含在内 例如 具有以下结构 Foo suite SetUp TestPage
  • 如何管理字符串数组中的连续变化值[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个字符串数组 但数组中的值正在不断变化 除了删除项目和更改索引位置之外 还有其他管理数组的方法吗 public int deviceI
  • 使用 Node http 模块上传文件

    如何使用节点 http 模块 并且没有第 3 方库 将文件上传到远程服务器 我尝试了以下方法 但它不起作用 我在服务器上没有收到任何数据 function writeBinaryPostData req filepath var fs re
  • Matlab:比较两个不同长度和不同值的向量?

    假设我有两个长度不同的向量 A 和 BLength A is not equal to Length B 并且向量 A 中的值与向量 B 中的值不同 我想将 B 的每个值与 A 的值进行比较 比较意味着值 B i 是否与向量 B 的值几乎相