我有两个矩阵:
A=[1 2 3; 4 5 6; 7 8 9]
C=[0 0 2; 0 0 1; 0 0 8]
我想保留C的非零值并创建D.然后,用A矩阵替换零元素。
所以D应该是:
D=[1 2 2; 4 5 1; 7 8 8]
我试试这段代码:
A=[1 2 3; 4 5 6; 7 8 9]
C=[0 0 2; 0 0 1; 0 0 8]
T=A(C==0)
R=sparse(T)
K=find(sparse(C))
它没有工作
答案 0 :(得分:3)
使用:
D = A;
D(C~=0) = C(C~=0);
答案 1 :(得分:3)
drorco的答案是正确的方法,但有一个我无法抗拒的单行:
D = ~C.*A + ~~C.*C;
答案 2 :(得分:2)
A=[1 2 3; 4 5 6; 7 8 9];
C=[0 0 2; 0 0 1; 0 0 8];
D=A;
inds=find(C~=0);
D(inds)=C(inds)
D =
1 2 2
4 5 1
7 8 8