如何在 MATLAB 中使用 2-D 掩码索引 3-D 矩阵?

2023-11-21

假设我有 D,一个 X×Y×Z 数据矩阵。我还有 M,一个 X×Y“掩蔽”矩阵。我的目标是当 M 中的 (Xi,Yi) 为 false 时,将 D 中的元素 (Xi,Yi,:) 设置为 NaN。

有什么办法可以避免在循环中这样做吗?我尝试使用ind2sub,但是失败了:

M = logical(round(rand(3,3))); % mask
D = randn(3,3,2); % data

% try getting x,y pairs of elements to be masked
[x,y] = ind2sub(size(M),find(M == 0));
D_masked = D;
D_masked(x,y,:) = NaN; % does not work!

% do it the old-fashioned way
D_masked = D;
for iX = 1:size(M,1)
    for iY = 1:size(M,2)
        if ~M(iX,iY), D_masked(iX,iY,:) = NaN; end
    end
end

我怀疑我在这里遗漏了一些明显的东西。 (:


您可以通过复制逻辑掩码来做到这一点M跨越三维空间使用REPMAT所以它的大小与D。然后,索引离开:

D_masked = D;
D_masked(repmat(~M,[1 1 size(D,3)])) = NaN;

如果不希望复制掩模矩阵,则还有另一种选择。您可以首先找到一组线性索引,其中M等于 0,然后复制该集合size(D,3)次,然后将每组索引移动多个numel(M)所以它索引了不同的部分D在三维空间中。我将在这里使用BSXFUN:

D_masked = D;
index = bsxfun(@plus,find(~M),(0:(size(D,3)-1)).*numel(M));
D_masked(index) = NaN;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 MATLAB 中使用 2-D 掩码索引 3-D 矩阵? 的相关文章

  • 按行重塑矩阵

    我有一个大小为 18000 x 54 的矩阵 我想将其重塑为大小为 54000 x 18 的矩阵 其中初始矩阵的每一行都变成一个有 3 行的矩阵 让我们举个例子 我有一个矩阵如下 a matrix 1 18 nrow 2 ncol 9 by
  • 使用正常数据直方图与直接公式进行熵估计(matlab)

    假设我们已经绘制了n 10000标准正态分布的样本 现在我想使用直方图计算其熵来计算概率 1 计算概率 例如使用matlab p x hist samples binnumbers area x 2 x 1 sum p p p area b
  • 在matlab中融合2个以上的图像

    在 MATLAB 中 如何融合两个以上的图像 例如 我想要做什么imfuse但对于超过 2 个图像 使用两张图像 这是我的代码 A imread file1 jpg B imread file2 jpg C imfuse A B blend
  • 2D 矩阵上的 Numpy where()

    我有一个像这样的矩阵 t np array 1 2 3 foo 2 3 4 bar 5 6 7 hello 8 9 1 bar 我想获取行包含字符串 bar 的索引 在一维数组中 rows np where t bar 应该给我索引 0 3
  • UDP接收和发送Matlab

    我目前正在努力从外部设备接收数据包 然后将数据发送到另一个设备 我有一个工作 Simulink 模型 但我不知道如何在 Matlab 中对其进行编码 Matlab 中 UDP 接收块的参数如下图所示UDP 接收参数 https i stac
  • 是否可以将 pd.Series 分配给无序 pd.DataFrame 中的列而不映射到索引(即不重新排序值)?

    在 Pandas 中创建或分配新列时 我发现了一些意外的行为 当我对 pd DataFrame 进行过滤或排序 从而混合索引 然后从 pd Series 创建新列时 Pandas 会重新排序该系列以映射到 DataFrame 索引 例如 d
  • 了解 Matlab 中的 DEL2 函数以便用 C++ 对其进行编码

    为了用 C 编写 DEL2 matlab 函数 我需要了解该算法 我已经成功地为不在边界或边缘上的矩阵元素编写了函数 我已经看过几个有关它的主题 并通过输入 edit del2 或 type del2 来阅读 MATLAB 代码 但我不明白
  • 使用 Ruby on Rails 索引多列

    我在 Mysql 数据库中有一个表 我想在其上使用多列索引 如何在不使用 mysql 控制台的情况下在 Rails 中执行此操作 在迁移定义中 您可以这样做 add index table name column1 column2
  • MATLAB:MEX 矩阵除法给出的结果与 m 文件不同

    我使用 MATLAB 的编码器工具创建了矩阵指数函数的 MEX 版本 以在另一组函数中使用 问题是 MEX 版本给出的结果与原始 m 文件不同 经过调试 我认为这是因为MEX文件和m文件没有做相同的矩阵除法 或者 MEX 文件首先就有问题
  • 计算按前两列中的索引分组的 numpy 数组条目的第 N 列的总和?

    我想循环以下内容check matrix以这样的方式 代码可以识别第一个和第二个元素是否是1 and 1 or 1 and 2ETC 然后对于每个单独的类对 即1 1 or 1 2 or 2 2 代码应将最后一个元素 在本例中索引为 8 乘
  • MATLAB 中的内存映射文件?

    我决定使用 memmapfile 因为我的数据 通常为 30Gb 到 60Gb 太大 无法放入计算机内存中 我的数据文件由两列数据组成 对应于两个传感器的输出 并且它们采用 bin 和 txt 格式 m memmapfile G E Str
  • 如何使用 MATLAB 的“等值面”函数创建三角球体

    如何创建一个三角球体 其中每个三角形的面面积相同 我想要这样的东西 http imageshack us a img198 5041 71183923 png http imageshack us a img198 5041 7118392
  • 获取 pandas 数据框中每列的前 k 个元素的索引的快速方法

    我有一个非常大的 pandas 数据框 大约有 500 000 列 每列大约有 500 个元素长 对于每一列 我需要检索该列中前 k 个元素的 索引 列 位置 所以 如果 k 等于 2 这是我的数据框 A B C D w 4 8 10 2
  • Matlab 中的多行匿名函数? [复制]

    这个问题在这里已经有答案了 是否可以在 Matlab 中创建多行匿名函数 没有合适的例子在文档中 http www mathworks com help matlab matlab prog anonymous functions html
  • 即使将“enable_seqscan”设置为关闭后,也未使用数组列上的 GIN 索引?

    根据推荐this https stackoverflow com questions 4058731 can postgresql index array columns comment10357041 4059785评论 我建立了一个 i
  • Pandas重置索引未生效[重复]

    这个问题在这里已经有答案了 我不确定我在哪里误入歧途 但我似乎无法重置数据帧上的索引 当我跑步时test head 我得到以下输出 正如您所看到的 数据帧是一个切片 因此索引超出范围 我想做的是重置该数据帧的索引 所以我跑test rese
  • ODE 时间 Matlab 与 R

    如果在 matlab 中使用可变时间步长求解器 例如 ODE45 我会定义输出的时间跨度 即times 0 50 matlab 将返回 0 到 50 之间不同时间步长的结果 然而在 R 中 我似乎必须定义我希望 ODE 返回结果的时间点 即
  • 在 R 中计算大矩阵的零空间

    我找不到任何函数或包来计算 a 的零空间或 QR 分解 bigmatrix from library bigmemory 在 R 中 例如 library bigmemory a lt big matrix 1000000 1000 typ
  • glm 中矩阵值的顺序不正确?

    我开始使用GLM http glm g truc net通过 OpenGL 3 和 GLSL 进行数学运算的库 我需要正交投影来绘制 2D 图形 所以我编写了这个简单的代码 glm mat4 projection 1 0 projectio
  • 更快地评估从右到左的矩阵乘法

    我注意到以二次形式评估矩阵运算右到左明显快于左到右在 R 中 取决于括号的放置方式 显然它们都执行相同的计算量 我想知道为什么会这样 这与内存分配有什么关系吗 A 5000 5000 B 5000 2 A matrix runif 5000

随机推荐

  • Visual Studio C++:使用 google test 进行单元测试 exe 项目?

    使用 Visual Studio 2010 C 我正在尝试单元测试并决定尝试 Google Test gtest 我有一个现有的项目 可以编译为 MFC 可执行文件 我也对如何测试编译为 DLL 的项目感兴趣 我对单元测试惯例的理解是 您应
  • 如何在 Python 中检查 MySQL 连接是否打开?

    我正在使用 MySQLdb http mysql python sourceforge net 看来connection open 和connection sqlstate 对我不起作用 下面是代码 def open self TODO c
  • 将字符串格式的科学记数法转换为spark数据帧中的数字[重复]

    这个问题在这里已经有答案了 Day Date timeofday desc Timeofday hour Timeofday minute Timeofday second value 2017 12 18 12 21 02 AM 0 21
  • 如何在 Bash 中将换行符打印为 \n ?

    基本上 我想实现类似的逆echo e 我有一个存储命令输出的变量 但我想将换行符打印为 n 这是我的解决方案 sed s n tr d n
  • R 包 Kohonen - 如何绘制六边形而不是像 Matlab SOM 工具箱中的圆形?

    是否可以用六边形绘制 SOM 图 Kohonen 包 作为基本形式而不是圆形 现在不同的情节 计数 变化等 绘制为周围白色的圆圈 目的是创建类似于 Matlab SOM Toolbox 的 SOM 视觉效果 This 讨论表明六边形绘图在
  • Java 中的“运行时类”是什么?

    我试图理解什么是Object getClass 方法确实如此 The 文档说它 返回对象的运行时类 该解释无助于我理解该术语 有人简单描述一下什么是 运行时类 以及什么getClass does 只需将其理解为 具有该对象类型的所有元数据的
  • 在Java中创建给定大小的文件

    有没有一个高效的在Java中创建给定大小的文件的方法 在C中可以用以下方法完成截断 see 那个答案 大多数人只会写n将虚拟字节放入文件中 但必须有更快的方法 我在想截断还有的稀疏文件 创建一个新的随机访问文件并调用 setLength 方
  • 如何创建从 HTTP/HTTPS API 获取数据的 Alexa Skill(在 AWS Lambda 上使用适用于 Node.js 的“Alexa Skills Kit”)

    我想为 Amazon Alexa 创建一项技能 当由语音命令触发时 它可以通过 HTTPS 请求从 API 获取一些信息 并将结果用作对 Alexa 用户的口头回答 由于 Node js 的事件驱动概念以及 Node js 的内部结构 这里
  • System.TypeLoadException:方法“get_xxx”没有实现

    关于这个问题有很多问题 我已经毫无乐趣地解决了它们 我收到此错误 程序集中类型 App Web WebConfig 中的方法 get UserImageCDNUrl App Web 版本 1 0 0 0 文化 中性 PublicKeyTok
  • SwiftUI 不更新第二个 NavigationLink 目的地

    我有一个列表 其中包含推送视图的行 该视图有另一个列表 它推动另一个视图 原始List和最先推送的List会在数据发生变化时更新 但是 最后一个视图在推送时不会更新 当我向后滑动时 视图不再更新 尽管它曾经更新过 主页视图 gt 用户视图
  • 数据绑定 WPF 中 WebBrowser 的 Source 属性

    有谁知道如何在 WPF 3 5SP1 中对 WebBrowser 的 Source 属性进行数据绑定 我有一个列表视图 我希望左侧有一个小型 Web 浏览器 右侧有内容 并将每个 Web 浏览器的源与绑定到列表项的每个对象中的 URI 进行
  • 无法将 Nexus One 手机连接到 Android adb

    我正在运行 Android SDK 2 2 并尝试让 adb 连接到 Google Nexus One 手机 这是一部新手机 直接从 Google 发货 尚未安装任何应用程序 我有Windows XP 这是我到目前为止所做的 按照 Andr
  • 如何强制在 iOS Safari 中打开链接?

    我的网页有下载 Passbook pkpass 文件的链接 这在 iOS 版 Safari 中运行良好 因为 Apple 浏览器支持 mime 类型 application com vnd apple pkpass Facebook 的 i
  • 数据表 - 将列合并在一起

    我有这些数据库列 但我希望它们位于一列中 我该怎么做呢 我想用 mRender 吧 Address sTitle Address bVisible true bSearchable true City sTitle City bVisibl
  • 如何在 Mac OS X 上安装 MySQL gem

    在 Mac OS X 上安装 mysql gem 需要什么 我收到错误 无法构建本机扩展 首先安装 MySQL 可以使用二进制文件 也可以Homebrew Then gem install mysql2 Or gem install rub
  • HEAD~4^2 含义

    在涉及相对提交引用的 Udacity 课程中 它说 表示父提交 表示第一个父提交 和 之间的主要区别在于提交的时间 由合并创建 合并提交有两个父项 通过合并 commit 时 引用用于指示该文件的第一个父级 提交 而 2 表示第二个父级 第
  • 在 Windows 上设置 Python simpleHTTPserver [重复]

    这个问题在这里已经有答案了 我想设置PythonSimpleHTTPServer在 Windows XP 上 我的电脑上安装了Python 我正在执行以下命令 python m SimpleHTTPServer 8888 但我收到错误 C
  • 使用 .join 函数连接实现 __str__ 方法的非字符串 python 对象列表[重复]

    这个问题在这里已经有答案了 我已经看过了这个关于在Python中表示字符串的问题但我的问题略有不同 这也与问题不同如何将列表中的项目连接 连接 为单个字符串它是在这个问题之后创建的 适用于字符串列表 因此对这个问题没有任何适用性 这个问题的
  • TextView锚链接空间

    我想制作一个带有链接的 TextView 我用html和java的结合做到了 used to enable link navigation on TextView setMovementMethod LinkMovementMethod g
  • 如何在 MATLAB 中使用 2-D 掩码索引 3-D 矩阵?

    假设我有 D 一个 X Y Z 数据矩阵 我还有 M 一个 X Y 掩蔽 矩阵 我的目标是当 M 中的 Xi Yi 为 false 时 将 D 中的元素 Xi Yi 设置为 NaN 有什么办法可以避免在循环中这样做吗 我尝试使用ind2su