【发布时间】:2016-12-21 00:27:38
【问题描述】:
我有一个 square 矩阵,大小为C C,我想构建一个对角块矩阵,它重复N=2C(1+C) 次。问题是C的值可以改变,所以我不知道我是否可以使用blkdiag,因为我不知道我应该输入的参数数量,因为矩阵的大小是一个变量用户选择的。我怎么能在 MATLAB 中做到这一点?
【问题讨论】:
-
为什么不能使用带可变参数的
blkdiag? -
@AndrasDeak 我不知道该怎么做。是否可以?例如,我一直使用
blkdiag(A,A,A)。如果不对矩阵的数量进行硬编码,我怎么能写出来? -
Like this:构造一个单元格,然后将其传递给 blkdiag(作为逗号分隔的列表)。当然可能有更直接的方法;我承认在问之前我并没有真正考虑过你的问题:)
-
所以我的意思是
tmpcell = repmat({A},[1, 2*C*(1+C)]); out = blkdiag(tmpcell{:})。