紧凑的 MATLAB 矩阵索引表示法

2024-02-01

我有一个 n×k 大小的矩阵,每行包含 k 个数字。我想使用这 k 个数字作为 k 维矩阵的索引。在 MATLAB 中是否有任何紧凑的方法可以做到这一点,或者我必须使用 for 循环?

这就是我想要做的(在 MATLAB 伪代码中),但以更 MATLAB 风格的方式:

for row=1:1:n
    finalTable(row) = kDimensionalMatrix(indexmatrix(row, 1),...
          indexmatrix(row, 2),...,indexmatrix(row, k))
end

如果您想避免使用 for 循环,这可能是最简洁的方法:

indexCell = num2cell(indexmatrix, 1);
linearIndexMatrix = sub2ind(size(kDimensionalMatrix), indexCell{:});
finalTable = kDimensionalMatrix(linearIndexMatrix);

第一行将每一列indexmatrix使用元胞数组的单独元胞num2cell https://www.mathworks.com/help/matlab/ref/num2cell.html。这使我们能够通过所有k列作为逗号分隔的列表 https://www.mathworks.com/help/matlab/matlab_prog/comma-separated-lists.html into sub2ind https://www.mathworks.com/help/matlab/ref/sub2ind.html,一个转换的函数下标索引(行、列等)到线性指数(每个矩阵元素编号从 1 到N, N是矩阵中元素的总数)。最后一行使用这些线性索引来替换 for 循环。关于矩阵索引(下标、线性和逻辑)的很好的讨论可以找到here http://www.mathworks.com/company/newsletters/digest/sept01/matrix.html.

还有一些值得思考的地方...

许多 MATLAB 用户(包括我自己)已经习惯了回避 for 循环而支持向量化解决方案的趋势。然而,较新版本的 MATLAB 处理循环的效率要高得多。正如中所讨论的这个答案 https://stackoverflow.com/a/831964/52738对于另一个 SO 问题,使用 for 循环有时会比使用矢量化解决方案获得更快的代码运行速度。

我当然不是说你不应该再尝试矢量化你的代码,只是每个问题都是独一无二的。矢量化意志often更有效率,但不是always。对于您的问题,for 循环与向量化代码的执行速度可能取决于值有多大n and k are.

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

紧凑的 MATLAB 矩阵索引表示法 的相关文章

  • Lucene,索引已经/外部标记化的标记并定义自己的分析过程

    在使用Lucene的过程中 我有点失望 我不明白或不明白我应该如何继续为任何 Lucene 分析器提供已经可直接索引的东西 或者我应该如何继续创建我自己的分析器 例如 如果我有一个List
  • 寻找多列索引的最佳顺序

    假设我有一个包含两个索引的表 一个位于 a 列 一个位于 a b 和 c 列 我注意到 根据索引定义中列的顺序 MySQL 可能最终使用单列索引而不是多列索引 即使多列索引中的所有三列都在 ON 中引用JOIN 的一部分 这有点引出了一个问
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 从 Java 运行 MATLAB 函数

    我在 MATLAB 中有一个 m 文件 我想从 Java 调用该文件 并以字符串或 Java 中的任何形式获取解决方案 这听起来很简单 但由于某种原因我无法让它发挥作用 我试过这个 matlab nosplash wait nodeskto
  • 如何使用 pandas 对一系列值进行编码

    我有一个 pandas 数据框并且有一列age 我想将其编码为按特定范围分隔的分类值 例如 15岁以下的年龄应为0 15到30之间的年龄应更改为1等等 我找到了这种方法来做到这一点 在经历了关于使用的巨大困惑之后 and and age X
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • 在 C# 中存储矩阵值的快速且有用的方法

    我需要用 C 为 3D 引擎创建一个 4x4 矩阵类 我见过一些其他引擎将矩阵值存储在单个浮点成员变量 字段中 如下所示 float m11 m12 m13 m14 float m21 m22 m23 m24 float m31 m32 m
  • 当字段不为空时创建部分索引

    我正在尝试在字段上创建部分索引 但仅当该字段不为空时 换句话说 我希望能够让许多文档能够存储 null 但对于在字段中实际具有值的文档 我希望该值是唯一的 这是我尝试使用的代码 db account createIndex email 1
  • SQL Server 不使用索引将日期时间与非空进行比较

    我有一个与其他任何表都不相关的简单表 它有一个非 PK 列 它是一个日期 我已经为该列创建了一个非聚集索引 如果我提出这个查询 select from table where datecolumn is not null 但如果我删除 no
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 如何在Matlab中绘制网络?

    我有一个矩阵AMatlab中的维数mx2每行包含两个节点的标签 显示网络中的直接链接 例如 如果网络有4矩阵的节点A可能A 1 2 1 3 2 1 2 4 3 2 4 1 4 2 其中第一行表示有一个链接来自1 to 2 第二行表示有一个链
  • 如何使用Matlab将数据保存到Excel表格中?

    我想将数据以表格形式保存在 Excel 工作表中 它应该看起来像 Name Age R no Gpa Adnan 24 18 3 55 Ahmad 22 12 3 44 Usman 23 22 3 00 每次当我执行我的文件时类数据 m 下
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • 如何在Matlab中打印带有千位分隔符的整数?

    我想使用逗号作为千位分隔符将数字转换为字符串 就像是 x 120501231 21 str sprintf 0 0f x 但随着效果 str 120 501 231 21 如果内置fprintf sprintf做不到 我想可以使用正则表达式
  • 沿轴 0 重复 scipy csr 稀疏矩阵

    我想重复 scipy csr 稀疏矩阵的行 但是当我尝试调用 numpy 的重复方法时 它只是将稀疏矩阵视为对象 并且只会将其作为 ndarray 中的对象重复 我浏览了文档 但找不到任何实用程序来重复 scipy csr 稀疏矩阵的行 我
  • 实现 Index 特征以返回非引用的值

    我有一个想要实现的简单结构Index 但作为 Rust 的新手 我在借用检查器方面遇到了许多麻烦 我的结构非常简单 我想让它存储一个起始值和步骤值 然后当由usize它应该返回start idx step pub struct MyStru
  • Python 将列表追加到列表中

    我正在尝试编写一个通过矩阵的函数 当满足条件时 它会记住该位置 我从一个空列表开始 locations 当函数遍历行时 我使用以下方法附加坐标 locations append x locations append y 函数末尾的列表如下所

随机推荐

  • 为什么我无法使用方法返回的列表引用添加元素[重复]

    这个问题在这里已经有答案了 当我使用方法返回的列表引用添加元素时出现错误 假人 java package firstPro import java util List public class Dummy private List
  • 阻止访问静态内容文件夹

    我想知道如何阻止访问我的网络应用程序中的静态内容文件夹 右边的文件夹位于 war 中的 web root 文件夹内 像这样 myapp css js swf WEB INF 我希望内容仅在用户处于会话中时从应用程序中可见 如果有人在他 她的
  • 如何在 JavaScript 中四舍五入为整数?

    我有以下代码来计算一定的百分比 var x 6 5 var total total x 15 100 Result 43 3333333333 我想要的结果是确切的数字43如果总数是43 5它应该四舍五入到44 有没有办法在 JavaScr
  • 检索 WMI Win32_Processor.Family 属性的描述性值而不是索引

    下面的简单 VBS 示例从 WMI 检索 CPU 标题 体系结构和系列 s For Each Item In GetObject winmgmts impersonationLevel impersonate Root CIMV2 Inst
  • SonarQube 4.3.2 Javascript 排除 [重复]

    这个问题在这里已经有答案了 我们在 Java 项目中使用 SonarQube 版本 4 3 2 我们想要排除当前正在分析的所有 javascript 文件 我们尝试在排除列表中使用 js 进行排除 但没有成功 请帮忙 In your son
  • [外设maximumWriteValueLengthForType:CBCharacteristicWriteWithResponse]返回什么?

    我正在运行以下代码 peripheral maximumWriteValueLengthForType CBCharacteristicWriteWithResponse 就我而言 iPhone 7 iOS 10 0 2 它返回 512 这
  • jPlayer - 通过页面重定向保存用户设置

    我已经关注这个问题好几天了 我无法让它发挥作用 希望有人可以帮助我并指出我正确的方向 使用 jPlayer http jplayer org http jplayer org 我需要将 cookie 设置为以下内容 以便当用户返回该网页时
  • iPhone 802.11 扫描

    我正在开发一个室内位置使用 wifi 的系统 但是我在使用苹果库时遇到了问题 曾经是私人的 现在是公共的 我在哪里使用代码 libHandle dlopen System Library SystemConfiguration IPConf
  • MacOS 上使用 clang-15 时 FindTerminfo 中的 CMake 错误

    我在我的项目中使用 llvm 并使用 cmake 找到它find package LLVM REQUIRED CONFIG 配置失败并显示消息 cmake CMake Error at Applications CMake app Cont
  • jestjs - 如何在 ci 中参数化 cli 的测试执行?

    我有4个环境 dev 开发者区 测试 测试区 preprod 预生产环境 生产 生产环境 这些环境需要不同的配置来执行测试 不同的 url 用户名 资产等 如何在持续集成中将它们的配置作为参数传递给 jest 正如你所读到的here htt
  • Java 线程转储总结工具

    我有时必须查看 Tomcat 服务器的线程转储 然而 这是一个非常慢的过程 因为我的应用程序使用具有数百个线程的线程池 我查看的大多数线程转储都包含许多线程的相同堆栈跟踪 因为它们处于空闲等待工作状态 是否有任何工具可以解析线程转储并仅向我
  • eXist-db 在 .xq 数据中包含 html 模板

    我有一个 index html 数据 我通过以下方式包含了模板 div 在索引 html 站点中 我包含了一个关键字搜索表单 其想法是当我单击搜索按钮时 它应该调用 xq 文件来请求搜索结果 div
  • Pandas 跨多列进行代表性采样

    我有一个代表人口的数据框 每一列表示该人的不同品质 特征 我怎样才能获得该数据框 人口的样本 它代表了整个人口的所有特征 假设我有一个代表 650 人的员工队伍的数据框 如下所示 import pandas as pd import num
  • 我可以让 RSpec 只运行更改后的规格吗?

    我有一个非常大的项目 约 3800 个单独示例 的测试套件 我正在将其从 RSpec 2 14 更新到 3 6 我刚刚运行了全部替换s be true be true 但其中一些应该be truthy相反 这些规格是失败的 我可以从中提取更
  • 应用程序栏上的按钮 (WP7)

    If you open settings of wifi and choose any network you will see Password textbox and BUTTONS not icons in ApplicationBa
  • 如何将 Q.all() 与复杂的承诺数组一起使用?

    考虑我有一系列对象和承诺 例如 a 1 a 4 a 4 promiseSend Function valueOf Function promiseSend Function valueOf Function 现在什么时候打电话给我Q all
  • 什么时候在jstl中使用requestScope?

    jstl 变量在 jsp 的请求范围内设置
  • rownames_to_column 在 rowwise() 后无法正常工作

    我有这个 df df lt structure list a 1 5 b 6 10 c 11 15 d c a b c d e e 1 5 row names c NA 5L class c tbl df tbl data frame a
  • SQL - 查询获取服务器的IP地址

    SQL Server 2005 中是否有查询可以用来获取服务器的 IP 或名称 SELECT CONNECTIONPROPERTY net transport AS net transport CONNECTIONPROPERTY prot
  • 紧凑的 MATLAB 矩阵索引表示法

    我有一个 n k 大小的矩阵 每行包含 k 个数字 我想使用这 k 个数字作为 k 维矩阵的索引 在 MATLAB 中是否有任何紧凑的方法可以做到这一点 或者我必须使用 for 循环 这就是我想要做的 在 MATLAB 伪代码中 但以更 M