2012-10-07 11 views
5

Mam funkcję, która używa varargin jako wejścia, ale kiedy mam do wywołania tej funkcji, tworzę kilka macierzy, i bardzo nieefektywne jest wpisanie ich wszystkich w oknie poleceń.Wpisywanie kilku argumentów varargin

Najpierw używam funkcji, która tworzy na przykład 50 macierzy 2x2. A kiedy muszę użyć tej innej funkcji, muszę zadzwonić jeden po drugim, na przykład: rich(A(:,:,1), A(:,:,2), (...), A(:,:,50))

Czy istnieje najłatwiejszy sposób wywoływania tych macierzy bez konieczności wpisywania jednego po drugim? Coś rich(A(:,:,1:50) or rich(A(:,:,1):A(:,:,50)) (wiem, że to nie jest możliwe, ale szukałem czegoś takiego ...)

Odpowiedz

5

Spróbuj tego:

%# 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{:}) 
+0

Tu jest link do odpowiednich dokumentów: [Oddzielone przecinkami Listy] (http://www.mathworks.com/help/matlab/matlab_prog/comma-separowane-lists.html) – Amro

Powiązane problemy