在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函数即可。