5

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

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

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

4

1 回答 1

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{:})
于 2012-10-07T20:23:32.527 回答