2014-11-25 40 views
1

我試圖找到一種方式來傳遞一個1XN陣列成一個函數處理,其中n是在函數變量的數量,以便讓我們假設我宣佈一個處理程序,例如:將1xn數組傳遞給函數句柄而不是Matlab的單個值?

U = @(x, y) x^2 + 2*y^2 

,並插上電源:

U(1, 2) 
ans = 
    9 

有沒有什麼方法可以做類似於這個的呢?

a = [1, 2] 
U(a) 
ans = 
    9 

回答

3

是的,你可以;

U = @(x, y) x^2 + 2*y^2; 
a = {1, 2}; 
U(a{:}) 

當你擴展小區{:}它作爲擴展存儲在單元的分隔值的內容。這與myMatrix(...)myCell(...)不同,它們都產生原始集合的一個子集(無論是單元還是矩陣)。

+0

這種用法最常見的例子是'varargin',它的類型是'cell'。 – such 2014-11-25 10:04:56

+0

不錯!不知道這個! +1 – 2014-11-25 10:11:25

+0

太棒了!真的很感激,謝謝 – 2014-11-25 10:33:49

相關問題