0

我想为以下问题编写一个更简单的代码:我有 2 个称为A和的矩阵B

A=
   [ 1     7    12    24    36    48    51    63    68    73    77    82;
     2     7    12    24    36    48    60    66    70    74    79    83]
B=
   [ 0     2     1     1     1     1     1     1     1     1     0     1;
     1     1     1     1     1     1     1     2     0     0     1     0]

并应用以下内容来获取矩阵Res

Res = zeros(2,12);
     for x = 1:2;
        for t = 1:12;
            if B(x,t)~=0
               Res(x,t) = A(x,t) - B(x,t);
            else
               Res(x,t) = B(x,t);
            end
        end
    end


Res=
   [ 0     5    11    23    35    47    50    62    67    72    0    81;
     1     6    11    23    35    47    59    64    0     0    78    0]

如何简化我的代码以获得Res

4

2 回答 2

4

好吧,我喜欢单线,所以这是与马克竞争的另一种解决方案::)

Res = (A - B) .* (B ~= 0)
于 2012-09-01T17:29:20.747 回答
2

嗯,到目前为止,我完全没有做到这一点。分两行:

Res = A - B;
Res(B==0) = 0;
于 2012-09-01T17:22:25.633 回答