用另一个矩阵映射矩阵

时间:2014-02-26 13:37:58

标签: arrays matlab matrix

我对矩阵与另一个只包含1和0的矩阵的映射有疑问。 这是我的问题的一个例子:A是带有双精度的矩阵

A = [ 1 4 3;
      2 3 4; 
      4 3 1; 
      4 5 5; 
      1 2 1];

B是一个带有1和0的矩阵:

B = [ 0 0 0;
      0 0 0;
      1 1 1;
      1 1 1;
      0 0 0];

我希望获得一个矩阵C,它是由A映射的B的结果,就像那样:

C = [ 0 0 0;
      0 0 0;
      4 3 1;
      4 5 5;
      0 0 0];

我尝试B作为逻辑数组和矩阵。两者都导致同样的错误:

  

“下标索引必须是真正的正整数或逻辑。”

2 个答案:

答案 0 :(得分:6)

只需将A和B元素相乘:

C = A.*B

答案 1 :(得分:1)

我喜欢Dan的解决方案,但这将是另一种方式:

C = zeros(size(A));
C(B==1) = A(B==1);