MATLAB中单元数组中每个元素的长度

8
a={'a','aa','aaa','aaaa'}
length(a)
  4
size(a)
  1 4

我该如何用一个单独的命令获取单元格数组中每个元素的长度?在上面的示例中,期望的输出是[1 2 3 4]
2个回答

24
cellfun('length',a)

对于每个元素 x 在数组 a 中,应用 length(x)

cellfun 文档.


4
更加现代化的用法是将一个函数句柄作为第一个参数传入,例如:cellfun(@length, a)。该语句的意思是对于变量a中的每个单元,都应用length函数来计算其长度。 - Edric

0

你确定在这种情况下使用ARRAYFUN是正确的吗?你需要进行一些扭曲,例如arrayfun(@(c) length(c{1}), a)而不是更简单、更明显的cellfun(@length, a) - Edric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接