我想为以下问题制作一个更简单的代码:我有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
?
答案 0 :(得分:4)
嗯,我喜欢单行,所以这是与Mark's竞争的另一种解决方案::)
Res = (A - B) .* (B ~= 0)
答案 1 :(得分:2)
Hmmph,到目前为止,我完全没有在一行中做到这一点。分为两行:
Res = A - B;
Res(B==0) = 0;