2012-10-07 16 views
5

我有一個函數使用varargin作爲它的輸入,但是當我不得不調用這個函數時,我創建了幾個矩陣,並且在命令窗口中輸入它們的效率非常低。鍵入幾個varargin參數

首先我使用一個函數來創建例如50個2x2矩陣。而當我必須使用這個其他功能時,我必須逐個打電話,例如:rich(A(:,:,1), A(:,:,2), (...), A(:,:,50))

有沒有最簡單的方法來調用這些矩陣而無需逐個輸入? 喜歡的東西rich(A(:,:,1:50) or rich(A(:,:,1):A(:,:,50))(我知道這是不可能的,但我一直在尋找這樣的事情...)

回答

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

下面是相關文檔的鏈接:[逗號分隔列表](http://www.mathworks.com/help/matlab/matlab_prog/comma-separated-lists.html) – Amro