簡體   English   中英

如何在Matlab中通過替換創建新矩陣?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM