
cellfun函数是MATLAB中一个强大的工具,用于对cell数组中的每个元素应用指定函数。其基本语法是A = cellfun(func, C),其中func是单输入单输出的函数处理每个cell的内容,输出结果会串联到数组A中,如A(i) = func(C{i})。func的输出可以是任意数据类型,只要这种数据类型可以串联。A和C的尺寸必须一致,且计算顺序不可预知。cellfun还支持使用Name-Value参数来定制功能,例如,设置'UniformOutput'为false,可使函数返回元胞数组形式的输出。这对于func返回不能直接串联的值时特别有用。例如,要创建字符向量元胞数组C的缩写,可以使用cellfun和匿名函数@(),如A = cellfun(@(x) x(1:3), C, 'UniformOutput', false)。cellfun不仅适用于字符向量元胞数组,也适用于字符串数组,它会把每个字符串元素视为字符向量处理。通过指定'UniformOutput',可以控制是否以标量或元胞数组的形式返回函数结果。如A = cellfun(@mean, str, 'UniformOutput', false),在计算数值矩阵的均值时,可能需要调整输出格式。使用cellfun时,可以传递Name-Value对参数,如'UniformOutput',它有两个可能的值:true(默认)和false。默认情况下,cellfun会将func的输出串联成标量数组,但通过指定false,可以得到元胞数组格式的结果。输出参数A的类型取决于func的返回值,它可以是任意数据类型数组,或者根据'UniformOutput'设置,以元胞数组的形式呈现。
