在一行与 1 和 0 矩阵之间进行异或的更快方法?

2023-12-01

我有一行数据,比如说A = [0 1 1 1 0 0].

矩阵 B 包含许多行。对于一个虚拟的例子,我们假设它只是B = [1 1 1 0 1 0; 1 0 0 1 0 1].

我想找到 A 和 B 的行不同的列数,并使用该差异向量来查找 B 的哪一行与 A 最相似。因此,对于上面的示例,A 不同于B(1,:)在第 1、4、5 列中 = 3 总差异。 A 与 B(2,:) 的不同之处在于第 1、2、3、6 = 4 列,总共有 4 个差异,因此我想返回索引 1 以指示 A 与 B(1,:) 最相似。

事实上B有约 50,000 行,并且 A 和 B 都有大约800列。我当前查找最相似行的代码如下:

min(sum(xor(repmat(A,B_rows,1),B),2));

这可行,但速度非常慢。对于哪个功能花费了这么长时间以及改进方法有什么见解吗?


有 6 种或多或少相似的方法bsxfun,很难说哪个是最快的。

%example data
A = [0 1 1 1 0 0];
B = perms(A);     %720x6 matrix

计算相似度:

Z = sum(  bsxfun(@eq,  A,B) , 2);
Z = sum( ~bsxfun(@ne,  A,B) , 2);
Z = sum( ~bsxfun(@xor, A,B) , 2);

计算差异:

Z = sum( ~bsxfun(@eq,  A,B) , 2);
Z = sum(  bsxfun(@ne,  A,B) , 2);
Z = sum(  bsxfun(@xor, A,B) , 2);

Z是一个向量,包含相等/不相等元素的数量A对于每一行B.

每个 100 次试验的基准(与上面的顺序相同):

t100 =

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

在一行与 1 和 0 矩阵之间进行异或的更快方法? 的相关文章

  • 将数组传递给函数 - 指针与引用(C++ 与 C)

    我有一个关于将数组传递给函数的最佳实践的广泛问题 因此 过去当我用 C 语言编程时 我想要一个函数的输入是一个数组 我会声明该函数的输入参数是一个指针 这效果相对较好 然而 我已经开始更多地使用 C 进行编程 并试图确定将数组传递到函数中的
  • Swift:配对数组元素的最佳方法是什么

    我遇到了一个需要成对迭代数组的问题 最好的方法是什么 或者 作为替代方案 将数组转换为对数组 然后可以正常迭代 的最佳方法是什么 这是我得到的最好的 这个需要output成为一个var 而且它并不是很漂亮 有没有更好的办法 let inpu
  • 如何使用现有列表创建二维数组?

    例如 我有一个名为 mazeline 的 txt 数据 如下所示 abcd cdae korp 所以我首先列出了 3 个清单 mazeline readmaze split mline0 list mazeline 0 mline1 lis
  • Java 泛型从类创建数组

    我有一个层次结构 其中正方形 三角形和圆形都从形状延伸 我有一个工作方法 public void someMethod File file new File File with squares ThirdPartyClass foo new
  • 如何发布数组多维角度js

    我在 angularjs 中有一个数组 示例如下 scope order qty 20 scope order adress Bekasi scope order city Bekasi 这个数组可以用这个代码发布 http method
  • 在Java中清空数组/处理

    除了循环遍历数组中的每个元素并将每个元素设置为 null 之外 Java 处理中是否有一个本机函数可以简单地清空数组 或销毁它 以便能够将其重新声明为新数组 There s Arrays fill myArray null 并不是说它执行的
  • PHP—array_merge_recursive() - 相同键没有数组

    php a php gt data1 tag gt div classes gt 1 2 3 php gt data2 tag gt section classes gt 2 3 4 5 6 php gt result array merg
  • MATLAB 类的 Description 和DetailedDescription 属性

    内置 MATLAB 类具有 Description 和 DetailedDescription 属性的值 gt gt handle ans meta class handle Package meta Properties Name han
  • 从给定的项目列表创建子列表

    我首先要说的是以下问题不是为了家庭作业目的即使因为我几个月前就完成了软件工程师的工作 无论如何 今天我正在工作 一位朋友向我询问了这个奇怪的排序问题 我有一个包含 1000 行的列表 每行代表一个数字 我想创建 10 个子列表 每个子列表都
  • 检测分段常数信号中的阶跃

    我有一个分段恒定信号 如下所示 我想检测步骤转换的位置 标记为红色 我目前的做法 使用移动平均滤波器平滑信号 http www mathworks com help signal examples signal smoothing html
  • 如何实现 Vec 的修剪?

    Rust 提供了字符串的修剪方法 str trim http doc rust lang org stable std primitive str html method trim删除前导和尾随空格 我想要一个对字节串执行相同操作的方法 应
  • 从 numpy 数组中删除连续的 RGB 值

    我最初根据灰度图像的初始数组创建了一个子数组 从 numpy 数组中删除连续数字 https stackoverflow com questions 50743769 deleting consecutive numbers from a
  • 在 VB.Net 中将字节数组转换为整数

    我想知道在 vb net 中将字节数组 长度 4 转换为整数的最佳方法是什么 我知道 BitConverter 但执行函数调用来执行应该可以通过复制 4 字节内存来完成的操作似乎相当浪费 同样 将单 双精度数从二进制表示形式转换为单 双精度
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 从数组中删除空白元素

    当我从 ruby on Rails 表单中保存多个选择时 它似乎在前面添加了一个空白元素 我该如何删除它 该字段为 selected player utf8 gt authenticity token gt H8W7qPBezubyeU0a
  • 为什么这两种不同的构造数组的方式会产生不同的行为?

    当我以两种不同的方式构造一个 2 元素数组时 例如a and b 当我将一个元素添加到内部数组之一时 我得到两个不同的结果 这也会发生在append 根据构建每个之后的输出 我希望它们完全相同 julia gt a 2 element Ar
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a
  • 数组到集合:优化代码

    有更好的方法来实现这一目标吗 public static List
  • 在不知道大小的情况下在Matlab中预分配空间?

    我正在构建一个向量X在 Matlab 中 通过将循环过程中每次迭代的结果连接起来 我现在正在做的是 X for j 1 N do something that delivers a vector A X X A end 不可能先验地预测 A
  • 小矩阵乘以大矩阵

    我试图将小矩阵 假设为 2x2 中的每个元素与大矩阵 假设为 4x4 中的每个位置逐个元素相乘 所以我想要 1 2 3 4 1 0 3 0 1 0 1 2 3 4 0 0 0 0 0 0 x 1 2 3 4 1 0 3 0 1 2 3 4

随机推荐

  • C# SMO 和 SqlEnum 引用错误

    我正在做一个 C 项目VS2013正在使用smo目的 我安装了 Install Package Microsoft SqlServer Scripting Install Package Microsoft SqlServer SqlEnu
  • Azure服务总线:如何续订锁定?

    如何更新接收队列消息处理程序上的锁 在事件处理程序上 测试消息没有更新锁定属性 Message testMessage https learn microsoft com en us dotnet api microsoft service
  • R Shiny:保留旧输出

    在闪亮的应用程序中 有没有办法保留旧的反应输出并将其与新的反应输出一起显示在应用程序中 举个例子 假设我想显示线性模型的汇总表 我逐渐向其中添加更多变量 我目前有一个checkboxGroupInput我使用该面板选择要包含在模型中的解释变
  • 字节算术:如何减去字节变量? [复制]

    这个问题在这里已经有答案了 当我尝试执行以下操作时出现错误 byte a 23 a a 1 编译器给出这个错误 Test java 8 发现可能存在精度损失 需要 int 字节 a a 1 1 个错误 铸造并不能解决错误 为什么编译器不让我
  • jq 的意外循环

    我正在尝试将 bash 中的表从 json 打印到标准输出jq key name doc count 1000 values over time buckets key as string 2019 05 01 11 00 00 000 k
  • Python:获取和保存屏幕截图的最快方法

    我一直在努力想出一个脚本 让我每秒可以多次截取桌面屏幕截图 我用的是Win10 PIL from PIL import ImageGrab import time while True im ImageGrab grab fname dro
  • 使用 Gmail 从 Excel 发送电子邮件

    我正在尝试在保存工作簿后自动生成电子邮件 我不想在电子邮件中发送工作簿 只是向一组人员发送电子邮件通知 告知其中有一个新条目 因此他们实际上必须打开它并做出响应 如果我可以添加指向该条目位置的链接 可以使用的电子表格 此外 该工作簿是 共享
  • Flutter 从 Firebase Cloud Firestore 返回完整数组

    9 月 2 日最新编辑 即使有赏金 我对此也没有太大的兴趣 所以我会尝试问一个更简单 更具体的问题 因此 我根据下面 Doug 的建议重新组织了数据库 因为我无法在 firebase 中以任何方式引用数组 所以现在我有了一个数组的映射 而不
  • 有些手机需要 READ_CONTACTS 权限才能从联系人选择器中读取

    我有一个HTC ONE M7 GPE 4 2 2 和HTC EVO 3D 4 0 3 HTC Sense 3 6 HTC ONE不需要
  • 如何在不使用任何插件的情况下添加 2 个音调图标?

    我不想只为我的应用程序中的一个图标添加任何插件 但我需要两种色调 因为背景颜色会有所不同 我不知道什么时候会变暗 什么时候会变亮 我的意思是像这样的图标 https material io tools icons style twotone
  • 如何创建更加用户友好的 string.format 语法?

    我需要在程序中创建一个很长的字符串 并且一直在使用String Format 我面临的问题是当参数超过 8 10 个时跟踪所有数字 是否可以创建某种形式的重载来接受与此类似的语法 String Format You are age year
  • 路由器解析不会注入控制器

    我已尝试一切方法来让 ui router 解析将其值传递给给定的控制器 应用程序 Ctrl 我正在使用依赖注入 inject 这似乎导致了问题 我缺少什么 Routing stateProvider state app index url
  • 如何将命名向量作为行添加到数据框中,并根据列名称顺序重新排序?

    如何将命名向量添加到数据框中 并根据数据框的列名称重新排序向量的组件 我需要一次一行构建一个数据框 通过某种处理获得命名向量 它提供要插入的行的值 问题是命名向量的分量与数据框列的顺序不同 这使得rbind产生错误的结果 这是非常简化的示例
  • 如何在Windows服务器上安装Apple Push证书

    我需要安装从 Apple 开发门户下载的证书 以便在 Windows 服务器上测试推送通知 我在网上搜索了一个解决方案 但每个人对此都有不同的看法 有人有关于如何执行此操作的分步指南吗 我也一直在研究这个课题 以下链接可能对您有用 http
  • Laravel 4,在 JavaScript 中传递变量到路由

    How Can I pass the variable stock id return from Ajax response to the route to generate the url to edit a stock ajax url
  • 检测手机休眠时的手势[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在开发一个 SOS Android 应用程序 如果手机处于睡眠 待机模式 我想检测手势 例如屏幕上的几次触摸 并开始发送帮助请求 例如发送短信 我怎样才能检测到这个手势 有人
  • 使用 Cypress 登录 WordPress,无需使用 UI

    In the 有关登录的 Cypress 文档他们指出不应使用 UI 设置状态 但看起来 WordPress 的 API 中没有提供登录功能 由于黑客攻击是大多数 WordPress 站点上的一个问题 所以我不想添加它 如何使用 Cypre
  • 如何在 django 通道上使用令牌身份验证对 Websocket 进行身份验证?

    我们想为我们的 websocket 使用 django channels 但我们也需要进行身份验证 我们有一个与 django rest framework 一起运行的 Rest api 我们使用令牌来验证用户身份 但 django cha
  • NSXMLParser 因 & 符号而阻塞

    我正在使用 NSXMLParser 解析一些 HTML 只要遇到 符号 它就会遇到解析器错误 我可以在解析它之前过滤掉 符号 但我宁愿解析那里的所有内容 它给我错误 68 NSXMLParserNAMERequiredError 名称是必需
  • 在一行与 1 和 0 矩阵之间进行异或的更快方法?

    我有一行数据 比如说A 0 1 1 1 0 0 矩阵 B 包含许多行 对于一个虚拟的例子 我们假设它只是B 1 1 1 0 1 0 1 0 0 1 0 1 我想找到 A 和 B 的行不同的列数 并使用该差异向量来查找 B 的哪一行与 A 最