Only with specific values matrix multiplication in MATLAB

时间:2016-04-04 19:00:28

标签: matlab matrix matrix-multiplication

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?

1 个答案:

答案 0 :(得分:2)

我相信你想描述的是:

  

给定一个矩阵I中的0 - 值元素的索引列表(例如Y),从给定矩阵{{1}构造一个新矩阵Z但是,X中的索引集I设置为Z0XY自然具有相同维度的限制。

在这种情况下,您的示例略有偏差:我相信您的意思是示例中的Z应该是

Z

您可以通过

简单地实现这一目标
  1. Z = 0 0 0 5 0 0 0 0 0 的内容复制到X
  2. ZI设置索引Z,其中0对应I中零值元素的索引集。
  3. 即:

    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