2014-10-28 68 views
1

的重複塊假設我有一個n -by- n矩陣An -by- n矩陣B。我想要創建一個塊矩陣CN塊作爲矩陣A作爲對角線和(N -1)矩陣B塊作爲A對角線以下的對角線。創建一個塊對角和次對角與在Matlab

link給出了只有塊對角的情況下答案,這都是偉大的。現在我想添加一個塊的子對角線,我應該使用Matlab中的哪個命令?

非常感謝您的幫助。

回答

1

如果你知道如何在其對角線(大小nN -by- nN)創建矩陣CA,你也可以用B其對角線上創建更小的尺寸(n(N-1) -by- n(N-1))的矩陣D ,那麼你只需要在C右子矩陣添加D

C((n+1):end, (n+1):end) = C((n+1):end, (n+1):end) + D; 

另外,使用kron

C = kron(eye(n), A) + kron(diag(ones(n-1,1), -1), B); 

你可能會使用稀疏矩陣這裏

C = kron(speye(n), A) + kron(spdiag(ones(n-1,1), -1, n, n), B); 
+0

感謝會更好。 「在C的右子矩陣中添加D」這部分是我不熟悉的! – math 2014-10-28 15:59:02

+0

感謝您的選擇! – math 2014-10-28 16:02:32