Matlab:使用矩阵作为掩码执行元素运算

标签 matlab

在 Matlab 中,我有两个矩阵:一个是整数矩阵,x,另一个是 bool 矩阵,y:

x =

     2     4     2
     3     3     1
     4     1     5

y =

     0     0     1
     1     1     0
     1     0     1

我现在想做的是将x的一些元素赋值为5,并且我想使用y作为掩码来确定哪些元素应该设置为5. 因此,y 中对应值为 0 的元素应保持在 x 中的原样,但 y 中对应值为 1 的元素应保持不变> 应设置为 5。因此,输出应为:

     2     4     5
     5     5     1
     5     1     5

我尝试过以下方法:

x(y) = 5

这给了我错误:

Subscript indices must either be real positive integers or logicals.

我也尝试过:

y(x) = 5

这给了我以下内容:

 5     5     1
 5     1     0
 5     0     1

有人可以解释一下这里发生了什么,以及我需要做什么才能得到我想要的结果吗?

最佳答案

您遇到的错误是由于显然 ydouble 类型,而在本例中,它应该是 输入逻辑

你可以尝试:

x(logical(y))=5

希望这有帮助

关于Matlab:使用矩阵作为掩码执行元素运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31837313/

相关文章:

c - 如何使用 libjpeg 获取图像的图像矩阵

c - 如何加速这个墨西哥代码?

matlab - 为什么 24.0000 在 MATLAB 中不等于 24.0000?

r - 如何创建 3D - MATLAB 风格 - R 中的曲面图

MATLAB - 如何比较两个对象是否相同或不同

matlab - 返回变维矩阵的下标

matlab - 使用 C++ 中的 "engine.h"在 Matlab 中绘制四元数

Matlab nchoosek问题

c - Matlab 用 mex 编译 C 文件时出错

matlab - 使用 MATLAB 创建高斯随机变量