块矩阵构建matlab

时间:2015-12-08 20:48:35

标签: matlab matrix

鉴于我有每个nxn矩阵,构建此矩阵的最有效方法是什么。

我正在考虑创建一个单元格数组,并使用嵌套的for循环迭代它,但是对于大k,这将是非常低效的..

enter image description here

1 个答案:

答案 0 :(得分:1)

如何将blkdiag与任意数量的输入矩阵一起使用的示例:

m = {[1,2; 3, 4]; [10, 11, 12; 13, 14, 15; 16, 17, 18]};  %cell array of matrices
A = blkdiag(m{:})

然后,您可以通过将矩阵复制到大矩阵A

来触摸它
for(i=1:k-1)
    row_begin = 1 + (i-1)*n;
    row_end   = row_begin + n - 1;
    col_begin = 1 + i*n;
    col_end   = col_begin + n - 1;
    A(row_begin:row_end, col_begin:col_end) = B
end

等...

如果您的矩阵非常大但非常稀疏且您的算法保留稀疏性,您可以考虑构建sparse matrix