[英]How can I create a new matrix via replacement in matlab?
我有兩個矩陣:
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))
沒用
采用:
D = A;
D(C~=0) = C(C~=0);
drorco的答案是正確的方法,但是有一種我無法抗拒的方法:
D = ~C.*A + ~~C.*C;
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.