函数 cellfun
功能 对胞元数组中的每个元素进行相同的操作
格式
[A1,A2,A3...Am] = cellfun(func,C1,...,Cn)
[A1,A2,A3...Am] = cellfun(func,C1,...,Cn,Name,Value)
备注
格式二中 Name,Value对中Name 可选为‘UniformOutput’和‘ErrorHandler’
Uniformoutput
true 将输出整合为一个数组
C = {rand(3),rand(3),rand(3)};
fcn = @mean;
cellfun(fcn,C,'UniformOutput',true)
false 输出为胞元数组
C = {rand(3),rand(3),rand(3)};
fcn = @mean;
cellfun(fcn,C,'UniformOutput',false)
输出中m对应于函数的操作,但每个输出的维度与n相同
C = {rand(3),rand(3),rand(3)};
[nRows,nCols] = cellfun(@size,C)
cellfun(@size,C,'UniformOutput',false)
对字符串的统一操作
days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'};
abbrev = cellfun(@(x) x(1:3), days, 'UniformOutput', false)
error handle
主函数
A = {rand(3)};
B = {rand(5)};
AgtB = cellfun(@(x,y) x > y, A, B, 'ErrorHandler', @errorfun, ...
'UniformOutput', false)
错误处理函数
function result = errorfun(S, varargin)
warning(S.identifier, S.message);
result = 1;%NaN;
end
本文详细介绍了MATLAB中函数cellfun的使用方法,包括如何对细胞数组中的每个元素应用指定的操作,以及通过设置UniformOutput参数来控制输出格式。此外,还展示了如何处理不同大小的输入数组并提供了错误处理的方法。
618

被折叠的 条评论
为什么被折叠?



