2014-10-01 47 views
0

Matlab的語法問題:如何在Matlab中從矩陣(塊)和數字(重複次數)創建塊矩陣?

鑑於一些NXD矩陣A(比如說[1 2 3 4 5 6]),和一個編號k(比如2),如何創建塊矩陣,其中A出現ķ次(在我的例子中[1 2 3 0 0 0; 4 5 6 0 0 0; 0 0 0 1 2 3; 0 0 0 4 5 6])?

另一個例子,如果A是[1 2 3; 4 5 6],且k = 3,則輸出應該是:

[ 1 2 3 0 0 0 0 0 0; 
    4 5 6 0 0 0 0 0 0; 
    0 0 0 1 2 3 0 0 0; 
    0 0 0 4 5 6 0 0 0; 
    0 0 0 0 0 0 1 2 3; 
    0 0 0 0 0 0 4 5 6 
] 
+2

'M = KRON(眼(K),A)' – bla 2014-10-01 16:40:49

+0

尼斯,謝謝:)。 – 2014-10-01 16:42:54

回答

1

它退出容易,只需使一個循環,並與基體O的大小起到:

A =[ 
    1  2  3; 
    4  5  6] 
O = zeros(size(A)) 
B = [A O; O A] 
B =[ 
    1  2  3  0  0  0; 
    4  5  6  0  0  0; 
    0  0  0  1  2  3; 
    0  0  0  4  5  6] 

我希望你在尋找這個。

clc 
A =[ 
    1  2  3; 
    4  5  6] 
O = zeros(size(A)) 
B = []; 
K = 3; 
line = []; 
for (i=1:K) 
    line = []; 
    for (j=1:K) 
     if (j==i) 
      line = [line A] 
     else 
      line =[line O] 
     end 
    end 

    B = [B; line]; 
end 
+0

是的,但是在給定參數k的情況下,你如何在代碼中做到這一點? – 2014-10-01 16:35:35

+0

如果K = 3,你能舉個例子嗎?因爲它是不明確的,你想成爲矩陣'B',還是一般形式? – Elod 2014-10-01 16:36:50

+0

在問題中增加k = 3示例。謝謝。 – 2014-10-01 16:39:15