5

入力として varargin を使用する関数がありますが、この関数を呼び出さなければならない場合、いくつかの行列を作成します。それらすべてをコマンド ウィンドウに入力するのは非常に非効率的です。

まず、たとえば 50 個の 2x2 行列を作成する関数を使用します。そして、この他の関数を使用する必要がある場合は、1 つずつ呼び出す必要があります。たとえば、次のようになります。rich(A(:,:,1), A(:,:,2), (...), A(:,:,50))

1 つずつ入力する必要なく、これらの行列を呼び出す最も簡単な方法はありますか? のようなもの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 に答える