簡體   English   中英

如何在MATLAB中用另一個矩陣替換矩陣的元素?

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

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