Matlab cellfun函数
来源:互联网 发布:淘宝卖东西必须开店吗 编辑:程序博客网 时间:2024/06/05 05:31
Matlab中有一个数组类型,叫做Cell,Cell是一种广义数组,他的每个元素称之为一个单元,每个单元可以是任意类型数组,比如数值数组,字符串,结构体或者一个子Cell.因此每个单元可以有不同的大小.
cellfun是将一个函数运用到Cell数组中的所有元素
语法:
- [A1,…,Am] = cellfun(func,C1,…,Cn)
- [A1,…,Am] = cellfun(func,C1,…,Cn,Name,Value)
[A1,…,Am] = cellfun(func,C1,…,Cn)调用函数句柄func指定的函数,并传递Cell数组中的元素C1,…,Cn,n是传递到函数的参数个数,输出数组A1,…,Am,m为func函数输出的数量.第i次迭代对应于语法为[A1(i),…,Am(i)] = func(C1{i},…,Cn{i})。cellfun函数不能指定顺序来执行func函数。
[A1,…,Am] = cellfun(func,C1,…,Cn,Name,Value)调用函数func,附加选项通过一个或多个”Name,Value”键值对参数指定,Name可以取值”UniformOutput”或者”ErrorHandler”.
键值对参数
- ‘UniformOutput’:逻辑值如下
- true 表示对于所有输入,函数func的每一个输出都是一个标量单元数组,标量结构,或者一个总是相同类型和大小的标量值。cellfun函数将输出组合为A1,…Am的数组。每个输出数组都与单独的函数输出类型相同。
- false要求cellfun函数将输出组合成单元数组A1,…,Am。函数func的输出可以是任何大小或类型。
- ‘ErrorHandler’ 一个函数句柄,捕获所有MATLAB执行此函数遇到的错误,定义这个函数来重新抛出错误或者返回一个有效的输出.
Examples
计算Cell数组中元素的平均值.
C = {1:10, [2; 4; 6], []}; averages = cellfun(@mean, C) % 返回结果 averages = 5.5000 4.0000 NaN [nrows, ncols] = cellfun(@size, C) % 返回结果 nrows = 1 3 0 ncols = 10 1 0
创建一个包含字符向量的单元数组,并将其缩写为前三个字符。由于输出字符矢量为非标量,因此将UniformOutput设置为false。
days = {'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'};abbrev = cellfun(@(x) x(1:3), days, 'UniformOutput', false)% abbrev = 'Mon' 'Tue' 'Wed' 'Thu' 'Fri'
语法 @(x)创建了一个匿名函数.
计算两个单元阵列C和D之间的协方差,因为协方差输出是非标量,将UniformOutput设为false。
c1 = rand(5,1); c2 = rand(10,1); c3 = rand(15,1);d1 = rand(5,1); d2 = rand(10,1); d3 = rand(15,1);C = {c1, c2, c3};D = {d1, d2, d3};covCD = cellfun(@cov, C, D, 'UniformOutput', false)% covCD = [2x2 double] [2x2 double] [2x2 double]
定义并调用自定义错误处理函数。
function result = errorfun(S, varargin) warning(S.identifier, S.message); result = NaN;endA = {rand(3)};B = {rand(5)};AgtB = cellfun(@(x,y) x > y, A, B, 'ErrorHandler', @errorfun, ... 'UniformOutput', false)
阅读全文
0 0
- Matlab cellfun函数
- Matlab cellfun函数
- Matlab并行编程函数<cellfun & arrayfun>
- MATLAB矩阵分块函数mat2cell及cellfun函数
- matlab usage: cellfun
- Matlab并行编程<cellfun & arrayfun>
- Matlab并行编程<cellfun & arrayfun>
- matlab中的mat2cell及cellfun使用
- 向量化编程:arrayfun及cellfun函数的使用
- arrayfun, cellfun, bsxfun函数与Faster R-CNN代码
- 胞元数组批量化操作函数cellfun 20170317
- cellfun的用法
- [MATLAB]MATLAB常用函数
- [Matlab] Matlab cell函数
- matlab函数
- MATLAB函数
- matlab 函数
- matlab函数
- Spring框架之注册—SimpleAliasRegistry实现类
- redis详解-(4)列表
- DSSD: Deconvolutional Single Shot Detector 论文笔记
- Calendar自然周
- JAVA 网络编程 基础
- Matlab cellfun函数
- java使 FileWriter FileReader 无编码格式,OutputStreamWriter InputStreamReader可设置编码格式
- Gradle错误(二)
- Android Studio下的NDK开发(二):参数传递
- 图像处理源代码
- IS-IS LSP分片扩展
- JavaScript中callee和caller的用法解读
- Ubuntu与Centos的Hadoop安装以及编译运行MapReduce,Hadoop集群安装配置教程
- SpringBoot 中文手册 --Part IV --30 使用NoSQL技术