文档

structfun

将函数应用于标量结构的每个字段

语法

(A1,…,一个n= structfun(函数,年代)
(A1,…,一个n= structfun(函数,年代,名称,值)

描述

(A1,…,一个= structfun(函数年代应用函数句柄指定的函数函数对每个标量结构的场年代。输出数组A1,…,一个,在那里n函数的输出数是多少函数,包含函数调用的输出。

(A1,…,一个= structfun(函数年代名称,值调用函数函数带有一个或多个指定的附加选项名称,值对参数。可能的值为名字“UniformOutput”“ErrorHandler”

输入参数

函数

接受单个输入参数并返回的函数的句柄n输出参数。

如果函数函数对应于多个函数文件(即如果函数表示一组重载函数),MATLAB®根据输入参数的类确定调用哪个函数。

年代

标量的结构。

名称-值对参数

的可选逗号分隔对名称,值参数。名字参数名称和价值对应的值。名字必须出现在单引号内(' ').您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

“UniformOutput”

逻辑值,如下:

真正的(1)

表示对于所有输入,函数的每个输出函数始终具有相同类型和大小的标量单元格数组、标量结构或标量值。的structfun函数将输出组合到数组中A1,…,一个,在那里n是函数输出的个数。每个输出数组与单个函数输出的类型相同。

假(0)

要求structfun函数将输出组合为标量结构A1,…,一个,字段与输入结构相同年代。函数的输出函数可以是任何大小或类型。

默认值:真正的

“ErrorHandler”

一个函数的句柄,用于捕获MATLAB试图执行函数时发生的任何错误函数。定义此函数,使其重新抛出错误或返回函数的有效输出函数

MATLAB使用两个输入参数调用指定的错误处理函数:

  • 一个包含这些字段的结构:

    标识符

    错误的标识符。

    消息

    错误消息文本。

    指数

    在错误发生时,对应于输入单元格数组元素的线性索引。

  • 函数的输入参数集函数在错误发生的时候。

输出参数

A1,…,一个

数组,用于收集n函数输出函数

如果UniformOutput真正的(默认):

  • 各个函数的输出函数必须为标量值(数字、逻辑或字符)、标量结构或标量单元格数组。

  • 对于每个输入,特定输出参数的类必须相同。对应输出数组的类与函数中各个输出的类相同函数

  • 每个数组一个列向量的长度是否等于其中字段的数量年代。的structfun函数应用函数函数到田野年代函数返回的顺序相同字段名函数。

如果UniformOutput,每个数组一个标量结构是否具有与输入相同的字段年代

例子

创建一个标量结构,并计算每个字段中的字符数。

s.f1 = '星期日';s.f2 = '星期一';s.f3 = '星期二';s.f4 =“星期三”;s.f5 = '星期四';s.f6 = '星期五';s.f7 = '星期六';长度= structfun(@numel, s)

的每个字段中的文本要缩短年代,在前面的示例中创建。因为输出是非标量,所以设置UniformOutput

shortNames = structfun(@(x) (x (1:3)), s, 'UniformOutput', false)

的语法@ (x)创建一个匿名函数。

定义并调用自定义错误处理函数。

函数结果= errorfun(errorinfo, field)警告(errorinfo. field)标识符,errorinfo.message);结果= NaN;mystruct结束。F1 = 'text';myresult = structfun(@(x) x^2, mystruct, 'ErrorHandler', @errorfun)

扩展功能

R2006a之前介绍

这个话题有用吗?