仅在 MATLAB 中使用特定值矩阵乘法
Only with specific values matrix multiplication in MATLAB
代码如下:
X = [3 2 0; 5 0 7; 0 0 1];
Y = [0 0 0; 256 256 0; 256 256 0];
[row,col] = find(Y==0);
[row,col]
及其结果:
ans =
1 1
1 2
1 3
2 3
3 3
我在第二个矩阵中找到了 0 个值。我的问题是我想用第一个矩阵中的 0 替换(或者我们可以乘以)其他值并获得 Z
矩阵。
例如,Z
矩阵将是:
Z = [0 0 0; 5 0 7; 0 0 0]
我怎样才能做到这一点?
我相信你想描述的是:
Given a list of indices, say I
, of 0
-valued elements in some matrix Y
, construct a new matrix Z
from a give matrix X
, but where the set of indices I
in Z
are set to 0
. Limitation that X
, Y
and Z
naturally have the same dimensions.
在这种情况下,您的示例略有偏差:我相信您的意思是示例中的 Z
应该看起来像
Z =
0 0 0
5 0 0
0 0 0
您可以简单地通过
实现
- 正在将
X
的内容复制到 Z
,
- 将
Z
中的索引 I
设置为 0
,其中 I
对应于 Y
中具有零值元素的索引集。
即:
%// example
X = [3 2 0; 5 0 7; 0 0 1];
Y = [0 0 0; 256 256 0; 256 256 0];
Z=X; %// 1. above
Z(Y==0) = 0; %// 2. above
生成向量 Z
如上文所述。
代码如下:
X = [3 2 0; 5 0 7; 0 0 1];
Y = [0 0 0; 256 256 0; 256 256 0];
[row,col] = find(Y==0);
[row,col]
及其结果:
ans =
1 1
1 2
1 3
2 3
3 3
我在第二个矩阵中找到了 0 个值。我的问题是我想用第一个矩阵中的 0 替换(或者我们可以乘以)其他值并获得 Z
矩阵。
例如,Z
矩阵将是:
Z = [0 0 0; 5 0 7; 0 0 0]
我怎样才能做到这一点?
我相信你想描述的是:
Given a list of indices, say
I
, of0
-valued elements in some matrixY
, construct a new matrixZ
from a give matrixX
, but where the set of indicesI
inZ
are set to0
. Limitation thatX
,Y
andZ
naturally have the same dimensions.
在这种情况下,您的示例略有偏差:我相信您的意思是示例中的 Z
应该看起来像
Z =
0 0 0
5 0 0
0 0 0
您可以简单地通过
实现- 正在将
X
的内容复制到Z
, - 将
Z
中的索引I
设置为0
,其中I
对应于Y
中具有零值元素的索引集。
即:
%// example
X = [3 2 0; 5 0 7; 0 0 1];
Y = [0 0 0; 256 256 0; 256 256 0];
Z=X; %// 1. above
Z(Y==0) = 0; %// 2. above
生成向量 Z
如上文所述。