Here is the code:
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]
And its result:
ans =
1 1
1 2
1 3
2 3
3 3
I find the 0 values in the second matrix. My question is that I want to replace (or we can multiply) other values with 0 in first matrix and gain Z
matrix.
For example, the Z
matrix will be:
Z = [0 0 0; 5 0 7; 0 0 0]
How can I achieve this?
答案 0 :(得分:2)
我相信你想描述的是:
给定一个矩阵
I
中的0
- 值元素的索引列表(例如Y
),从给定矩阵{{1}构造一个新矩阵Z
但是,X
中的索引集I
设置为Z
。0
,X
和Y
自然具有相同维度的限制。
在这种情况下,您的示例略有偏差:我相信您的意思是示例中的Z
应该是
Z
您可以通过
简单地实现这一目标Z =
0 0 0
5 0 0
0 0 0
的内容复制到X
,Z
到I
设置索引Z
,其中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
。