键入几个varargin参数

时间:2012-10-07 20:13:06

标签: matlab matrix variadic-functions

我有一个使用varargin作为输入的函数,但是当我必须调用这个函数时,我创建了几个矩阵,并且在命令窗口中输入所有矩阵效率非常低。

首先,我使用一个函数来创建例如50个2x2矩阵。当我必须使用这个其他功能时,我必须逐个调用,例如:rich(A(:,:,1), A(:,:,2), (...), A(:,:,50))

是否有最简单的方法来调用这些矩阵而无需逐个输入? 像rich(A(:,:,1:50) or rich(A(:,:,1):A(:,:,50))之类的东西(我知道这是不可能的,但我一直在寻找这样的东西......)

1 个答案:

答案 0 :(得分:5)

试试这个:

%# random matrix of size 2x2x50
A = rand(2,2,50);

%# split by slices along the third dimension: AA = {A(:,:,1); ...; A(:,:,50)}
AA = mat2cell(A, 2, 2, ones(1,size(A,3)));
AA = AA(:);

%# call function, expanding into a comma-separated list
rich(AA{:})