计算矩阵列中数字的重合 - MATLAB

2024-01-17

我有一个矩阵 (A),其形式为(实际上要大得多):

205   204   201
202   208   202

如何逐列计算数字的重合,然后将其输出到矩阵?

我希望最终的矩阵从 min(A):max(A) (或能够指定特定范围)开始,从顶部到底部运行,并计算每列中数字的共重情况。使用上面的例子:

    200 201 202 203 204 205 206 207 208
200  0   0   0   0   0   0   0   0   0
201  0   0   1   0   0   0   0   0   0
202  0   0   0   0   0   1   0   0   0 
203  0   0   0   0   0   0   0   0   0
204  0   0   0   0   0   0   0   0   1
205  0   0   0   0   0   0   0   0   0
206  0   0   0   0   0   0   0   0   0
207  0   0   0   0   0   0   0   0   0
208  0   0   0   0   0   0   0   0   0

(不需要矩阵标签)

两个要点: 计数必须不重复并且按数字顺序进行。例如包含以下内容的列:

205
202

会将其计算为 202 与 205 一起出现(如上面的矩阵所示),但不是 205 与 202 一起出现 - 重复的倒数。在决定用什么数字作为参考时,应该是最小的。

EDIT:


sparse http://es.mathworks.com/help/matlab/ref/sparse.html来救援!

让您的数据和所需范围定义为

A = [ 205   204   201
      202   208   202 ]; %// data. Two-row matrix
limits = [200 208]; %// desired range. It needn't include all values of A

Then

lim1 = limits(1)-1;
s = limits(2)-lim1;
cols = all((A>=limits(1)) & (A<=limits(2)), 1);
B = sort(A(:,cols), 1, 'descend')-lim1;
R = full(sparse(B(2,:), B(1,:), 1, s, s));

gives

R =
     0     0     0     0     0     0     0     0     0
     0     0     1     0     0     0     0     0     0
     0     0     0     0     0     1     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     1
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0

或者,您可以省去sort并使用矩阵加法,然后triu获得相同的结果(可能更快):

lim1 = limits(1)-1;
s = limits(2)-lim1;
cols = all( (A>=limits(1)) & (A<=limits(2)) , 1);
R = full(sparse(A(2,cols)-lim1, A(1,cols)-lim1, 1, s, s));
R = triu(R + R.');

两种方法都处理重复的列(直到排序),正确地增加它们的计数。例如,

A = [205   204   201
     201   208   205]

gives

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

计算矩阵列中数字的重合 - MATLAB 的相关文章

  • Matlab Mex文件编译

    我正在尝试编译一个 mex 文件以在 matlab 中使用套接字连接 问题是它总是说我没有安装sdk或编译器 但我已经安装了 Visual Studio 2010 Express Visual Studio 2012 Express Vis
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • MATLAB 中的多个捕获组

    我有一个包含数字或字母的字符串a 可能紧随其后的是r or l 在 MATLAB 中 以下正则表达式返回为 gt gt regexp 10r 0 9 a l r match ans 10r 我希望10 and r分开 因为我有两个捕获组 有
  • MATLAB - 如何将子图一起缩放?

    我在一张图中有多个子图 每个图的 X 轴是相同的变量 时间 每个图上的 Y 轴都不同 无论是它所代表的内容还是数据的大小 我想要一种同时放大所有图的时间尺度的方法 理想情况下 可以在其中一张图上使用矩形缩放工具 并让其他图相应地更改其 X
  • 为什么旋转 3D 点云后顶点法线会翻转?

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

    我很好奇哪里可以找到完整的描述FEATURE功能 它接受哪些论点 没有找到文档 我只听说过memstats and getpid 还要别的吗 gt gt which feature built in undocumented 注意 更完整的
  • 两个向量之间的欧氏距离(单行矩阵)

    我有两个向量 单行矩阵 假设我们已经知道长度len A x1 x2 x3 x4 x5 B y1 y2 y3 y4 y5 计算它们之间的欧几里德距离最快的方法是什么 我的第一次尝试是 diff A B sum 0 for column 1 l
  • 如何在 Matlab 中将数组打印到 .txt 文件?

    我才刚刚开始学习Matlab 所以这个问题可能非常基本 我有一个变量 a 2 3 3 422 6 121 9 4 55 我希望将值输出到 txt 文件 如下所示 2 3 3 422 6 121 9 4 55 我怎样才能做到这一点 fid f
  • Matlab:如何更改矩阵的存储方式?从 1x1x3 到 1x3?

    我目前有 val 1 0 7216 val 2 0 7216 val 3 0 7216 但我想要 0 7216 0 716 0 721 我可以做什么样的操作来做到这一点 The reshape函数将在这里解决问题 Arrange the e
  • 黑白随机着色的六角格子

    我正在尝试绘制一个 10 000 x 10 000 随机半黑半白的六边形格子 我不知道如何将该格子的六边形随机填充为黑色和白色 这是我真正想要从这段代码中得到的示例 但我无法做到 https i stack imgur com RkdCw
  • 在 Matlab 中高效获取像素坐标

    我想在 Matlab 中创建一个函数 给定一个图像 该函数将允许人们通过单击图像中的像素来选择该像素并返回该像素的坐标 理想情况下 人们能够连续单击图像中的多个像素 并且该函数会将所有相应的坐标存储在一个矩阵中 有没有办法在Matlab中做
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • 如何在文本集中创建所有字符组合?

    例如 我有这样的文本集 第 1 栏 a b 第 2 栏 l m n 第 3 栏 v w x y 我想将它们组合起来以获得如下输出 alv alw alx aly amv amw amx amy 这将输出 24 种文本组合 如果我只使用前两列
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • 从开始/结束索引列表创建向量化数组

    我有一个两列矩阵M包含一堆间隔的开始 结束索引 startInd EndInd 1 3 6 10 12 12 15 16 如何生成所有区间索引的向量 v 1 2 3 6 7 8 9 10 12 15 16 我正在使用循环执行上述操作 但我想
  • ROC曲线和libsvm

    给定一条 ROC 曲线plotroc m see here http www csie ntu edu tw cjlin libsvmtools roc curve for binary svm 理论问题 如何选择要使用的最佳阈值 编程问题
  • 在不知道大小的情况下在Matlab中预分配空间?

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

随机推荐

  • SQLite - 存储多个值

    如何在 SQLite 数据库中存储和检索同一列的同一行的多个值 即我有一个产品列 另一列是商店 我在其中放入所有可以获得该产品的商店 Product iLamp Stores River s McWay Lonnie s 我怎样才能实现这个
  • Xcode 4.1 代码签名问题

    我已经阅读了很多线程 但在这里找不到类似我的问题的内容 我认为这是一个简单的修复 但我似乎找不到答案 我正在使用 Xcode 4 1 Gold Master 基本上 当我归档我的 Mac 应用程序时 它会经历所有正常流程 构建成功 但是 当
  • 有没有办法像 C# 中的 @"string" 一样转义 powershell 中的字符串

    有没有办法在 powershell 中转义完整的字符串 就像 string 在 C 中的工作方式一样 我正在编写一个脚本 其中有几个如下所示的字符串 D A CCLCSWRPWPDTLOCRRC SY A CCDCLCSWRPWPDTLOC
  • Laravel / Eloquent hasMany 关系 sum()

    我不知道如何立即加载关系列的总和 数据库 简化 如下 TABLES PRODUCT PRODUCT VARIATIONS ID ID NAME NAME AVAILABLE STOCK 我的关系设置如下 public function va
  • 如何在扩展到匹配文件之前访问文字通配符参数?

    背景 我正在编写一个必须接收这些参数的 bash 脚本 文件名 包含一组规则的文件 文件名列表 要处理的文件 可以使用通配符 目标文件夹 将存储文件的处理版本 理论上有 3 个参数 但实际上第二个参数会扩展 因此如果通配符匹配多个文件 参数
  • 关于round_up宏的问题

    define ROUND UP N S N S 1 S S 通过上面的宏 有人可以帮助我理解 s 1 部分 为什么呢 还有宏 例如 define PAGE ROUND DOWN x ULONG PTR x PAGE SIZE 1 defin
  • setter 和 getter 的模板

    我不熟悉模板 但我想知道是否可以将它们用于 setter 和 getter 方法 例如在这种情况下 double exmlClass getA void const return a void exmlClass setA const do
  • 无法使 NSTimer 无效(停止)[重复]

    这个问题在这里已经有答案了 可能的重复 NSTimer 不会停止 https stackoverflow com questions 1031554 nstimer doesnt stop 我正在使用 NSTimer 在播放音频时更新滑块的
  • 使用 REST API 将角色添加到 Google Cloud Platform 上的服务帐号

    我想使用调用 REST API 的 python 脚本在 GCP 上创建一个服务帐户 然后赋予它特定的角色 最好是一些角色these https cloud google com iam docs viewing grantable rol
  • 如何在 C# 中更改选项卡控件的字体属性而不更改其子控件的字体?

    我想更改选项卡控件的字体 因为我希望选项卡页标题中的文本看起来更大 但是 当我更改设计器中选项卡控件的字体属性 我使用的是 MS VStudio 2010 时 其子控件的字体也会更改 例如标签和树视图 这是我不打算做的 我只想更改选项卡页标
  • 验证失败时 TextBox 周围的红色边框

    我正在使用 ASP NET MVC 2 当验证失败时 Html DropDownListFor 和 Html TextAreaFor 自动获取红色边框 如何在验证失败时使 TextBox 使用 Html TextBoxFor 的四个边框变为
  • React-native,monorepo:无法解析模块@babel/runtime/helpers/interopRequireDefault

    我已经在 monorepo 中设置了一个反应本机应用程序作为工作区 我这样做是因为我想分享我在移动应用程序和网络应用程序之间创建的一些反应组件 我的仓库的基本结构是 root package json with nohoist expoap
  • 带有“未定义”参数的 JavaScript 函数[重复]

    这个问题在这里已经有答案了 浏览 Modernizr 源代码我发现了奇怪的事情 window Modernizr function window document undefined 之后 将使用两个参数调用该函数 this this do
  • Spring - server.connection-timeout 不起作用

    In my application properties文件我有 server port 8086 server connection timeout 15000 我知道该文件正在正确加载 因为服务器正在端口 8086 上运行 在应用程序中
  • 在 iOS 上查看大型 PDF 的最佳方式是什么?

    我目前正在使用 QLPreviewController 来查看 PDF 250MB 但是它无法处理真正的大文件 要么我得到的信息是整个文件尚未加载 要么整个应用程序死掉了 我还需要自定义使用 QLPreviewController 不可能实
  • 如何重建 Jenkins 管道

    我们一直在使用 Rebuilder 插件 https wiki jenkins io display JENKINS Rebuild Plugin https wiki jenkins io display JENKINS Rebuild
  • 在 powershell 中同时按下 Windows 徽标键 + Alt + PrtScn 的多个按键?

    我通过引用链接尝试了下面的代码 但无法一次按下这些键 我需要改变吗 code namespace SendTheKeys class SendIt public static void Main string args System Run
  • 如何在 QML 中将项目拖动到圆圈内?

    下面的代码允许在由最小和最大拖动值定义的矩形区域中拖动红色小矩形 我希望它只持续到半径为 100 的父矩形的边界 这意味着它现在是一个圆 如何在 QML 中将项目拖动到圆圈内 Window width 200 height 200 visi
  • 不能一起使用 Scanner.nextInt() 和 Scanner.nextLine() [重复]

    这个问题在这里已经有答案了 我必须获得字符串输入和整数输入 但输入顺序应该是整数先出现 然后应要求用户输入字符串 Scanner in new Scanner System in input in nextLine k in nextInt
  • 计算矩阵列中数字的重合 - MATLAB

    我有一个矩阵 A 其形式为 实际上要大得多 205 204 201 202 208 202 如何逐列计算数字的重合 然后将其输出到矩阵 我希望最终的矩阵从 min A max A 或能够指定特定范围 开始 从顶部到底部运行 并计算每列中数字