在MATLAB中,cellfun函數用于對cell數組中的每個元素應用一個指定的函數,并返回結果數組。其基本語法如下:
C = cellfun(func, C1, C2, …)
其中,func是一個函數句柄,用于指定要應用的函數;C1, C2, …是cell數組,用于指定要處理的數據。
通常情況下,func函數需要具有一個輸入參數和一個輸出參數。cellfun函數會將每個cell數組的元素依次傳遞給func函數進行處理,然后將func函數的輸出結果存儲在一個新的cell數組C中,其大小與輸入的cell數組相同。
例如,假設有一個cell數組A,其中包含了一些字符串,現在想要計算每個字符串的長度,可以使用cellfun函數來實現:
A = {‘Hello’, ‘World’, ‘MATLAB’};
C = cellfun(@length, A);
執行以上代碼后,C的值將為[5, 5, 6],分別對應于每個字符串的長度。
除了可以使用內置函數,也可以自定義一個匿名函數來作為func參數,例如:
A = {‘Hello’, ‘World’, ‘MATLAB’};
C = cellfun(@(x) x(1), A);
執行以上代碼后,C的值將為[‘H’, ‘W’, ‘M’],分別對應于每個字符串的第一個字符。
需要注意的是,要求被處理的cell數組的維度需要與func函數的輸入參數個數相匹配,否則會報錯。此外,cellfun函數還可以支持處理多個cell數組,只需將多個cell數組作為參數傳遞給cellfun函數即可。