将变量传递给具有可变长度输入参数的函数

时间:2011-10-31 19:21:45

标签: matlab

blkdiag使用varargin从输入参数构造块对角矩阵(每个矩阵需要插入对角线)。

  

out = blkdiag(a,b,c,d,...),其中a, b, c, d, ...是矩阵,   输出格式

的块对角矩阵      

enter image description here

假设我有一个矩阵的单元格数组(或其他一些数据结构);我如何将其提供给blkdiag等函数?

1 个答案:

答案 0 :(得分:3)

使用{:}展开函数:

blocks = cell(2);
blocks{1} = rand(2);
blocks{2} = rand(2);
out = blkdiag(blocks{:})

答案:

out =

0.6787    0.7431         0         0
0.7577    0.3922         0         0
     0         0    0.6555    0.7060
     0         0    0.1712    0.0318