![](/img/trans.png)
[英]Replace certain elements of matrix with elements of another matrix [Matlab / Octave]
[英]How to replace elements of a matrix by an another matrix in MATLAB?
如何在MATLAB中用另一個矩陣替換矩陣的元素?
例如:假設我們有矩陣A,其中
A=[1 0 0; 0 1 0; 1 0 1]
我想用替換所有的
J=[1 0 0; 0 1 0; 0 0 1]
和零
K=[0 0 0; 0 0 0; 0 0 0]
這樣我就可以得到9x9矩陣。 那么我們如何在MATLAB中編寫代碼
謝謝
聽起來您可能想看看kronecker張量積 。 這不是一般情況,但是這個想法應該適合您想要的
>> kron(A==1,J)+kron(A==0,K)
ans =
1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 1
對於示例情況,它將簡化為一個更簡單的命令:
>> kron(A,J)
ans =
1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 1
你可以做:
A2=imresize(A,size(A).*size(J),'nearest');
J2=repmat(J,size(A));
K2=repmat(K,size(A));
A2(A2==1)=J2(A2==1);
A2(A2==0)=K2(A2==0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.