在 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
有人可以解释一下这里发生了什么,以及我需要做什么才能得到我想要的结果吗?
最佳答案
您遇到的错误是由于显然 y
是 double
类型,而在本例中,它应该是 输入逻辑
你可以尝试:
x(logical(y))=5
希望这有帮助
关于Matlab:使用矩阵作为掩码执行元素运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31837313/