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

Matlab 将变量传递给具有可变长度输入参数的函数,matlab,Matlab,使用varargin从输入参数(需要插入对角线的每个矩阵)构造块对角线矩阵 out=blkdiag(a,b,c,d,…),其中a,b,c,d,…是矩阵, 输出形式为的块对角矩阵 假设我有一个矩阵单元数组(或其他数据结构);我将如何将其提供给类似于blkdiag的函数?使用{:}为函数展开它: blocks = cell(2); blocks{1} = rand(2); blocks{2} = rand(2); out = blkdiag(blocks{:}) 答复: out = 0.678

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

out=blkdiag(a,b,c,d,…)
,其中
a,b,c,d,…
是矩阵, 输出形式为的块对角矩阵


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

使用{:}为函数展开它:

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

该死我刚找到答案。啊,好吧…@Phonon:这通常不是一个好的形式:)但是它确实能给那些寻求帮助的人提供好的信息。@Jacob:我不同意。我认为对你自己的问题发表一个好的答案是完全可以的。@Jonas:是的,当然可以,但我个人更喜欢这样做,如果我的答案更好/仍然没有答案。