2012-01-30 52 views
8
a={'a','aa','aaa','aaaa'} 
length(a) 
    4 
size(a) 
    1 4 

我怎樣才能獲得在單元陣列中的每個元件與單個命令長度?上例中的期望輸出將是[1 2 3 4]MATLAB長度

回答

22
cellfun('length',a) 

「在a申請length(x)每個元素x」。

cellfun docs

+0

正是我一直在尋找。謝謝。 – user001 2012-01-30 06:55:42

+3

更「現代」的用法是提供一個函數句柄作爲第一個參數,即'cellfun(@length,a)'。 – Edric 2012-01-30 12:54:47

0

arrayfun - 應用功能陣列 檢查文檔中的每個元素: http://www.mathworks.com/help/techdoc/ref/arrayfun.html

+0

在這種情況下你真的確定ARRAYFUN嗎?你必須經歷一些扭曲,即'arrayfun(@(c)length(c {1}),a)'而不是更簡單,更明顯的'cellfun(@length,a)' – Edric 2012-01-30 12:53:47