ste*_*ish 14 matlab matrix vectorization
我有一个矩阵ķ尺寸为n×n .我想创建一个尺寸为N×N的新块对角矩阵M,使得它包含d个矩阵K块作为其对角线.
我会直接使用M = blkdiag(K,K,K)等已经ð过小.不幸的是,d是非常大的,我不想手动编写与公式d的完全相同的参数blkdiag()函数.
有没有更短,更聪明的方法来做到这一点?
bla*_*bla 22
你可以用kron它.
M = kron(X,Y)
Run Code Online (Sandbox Code Playgroud)
返回X和Y的Kronecker张量积.结果是通过在X的元素和Y的元素之间获取所有可能的乘积而形成的大数组.如果X是m-by-n而Y是p-by-q,则kron(X,Y)是m*p-by-n*q.所以在你的情况下,这样的事情会做:
M = kron(eye(L),K)
Run Code Online (Sandbox Code Playgroud)
用L#块.