主要内容

structfun

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

描述

例子

一种= structfun (funS.应用函数fun对标量结构的每个领域S.,一次一个字段。structfun然后从中连接输出fun变成列向量一种.输入参数fun是接受一个输入参数并返回一个标量的函数句柄。的输出fun可以有任何数据类型,只要该类型的对象可以连接。中元素的个数一种等于输入的字段数S.

不能指定顺序structfun计算一种或者依靠他们以任何特定的顺序完成。

例子

一种= structfun (funS.名称,值适用fun附加选项由一个或多个指定名称,值对论点。例如,要在结构中返回输出值,请指定“UniformOutput”,假的.你可以返回一种作为一个结构fun返回不能连接到数组中的值。返回的结构具有相同的字段S.

例子

(A1,…那一种m] = structfun(___返回多个输出阵列A1,…,什么时候fun回报m输出值。fun是否可以返回具有不同数据类型,但每次输出的数据类型必须相同的输出参数fun被称为。您可以将此语法与前面语法的任何输入参数一起使用。

例子

全部折叠

创建一个标量结构,其字段包含不同大小的数字数组。

S.F1 = 1:10;S.F2 = [2;4;6];s.f3 = []
S =结构体字段:F1:[1 2 3 4 5 6 7 8 9 10] F2:[3x1双] F3:[]

计算每个数字数组的平均值,并将阵列中的均值返回。

a = structfun(@均值,s)
A =3×15.5000 - 4.0000南

创建标量结构,其中每个字段包含一个随机数数组。

S.X =兰德(10);S.Y =兰德(10);S.Z =兰德(10)
S =结构体字段:X:[0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 0.5469 0.9575 0.9649] Y:[0.1576 0.9706 0.9572 0.4854 0.8003 0.1419 0.4218 0.9157 0.7922 0.9595] Z:[0.6557 0.0357 0.8491 0.9340 0.6787 0.7577 0.7431 0.3922 0.6555 0.1712]

情节的数组。控件返回图表线对象的数组阴谋函数并使用它们向每组数据点添加不同的标记。structfun可以返回任何数据类型的阵列,只要该数据类型的对象可以连接。

图保存p = structfun (@plot S);(1页)。标志=“o”;p(2).marker =“+”;p(3).marker =';持有

图中包含一个轴。坐标轴包含3个类型为line的对象。

使用包含矩阵的字段创建标量结构。

S.F1 = 1:10;S.F2 = [2 3;4 5;6 7];S.F3 = RAND(4,4)
S =结构体字段:F1:[1 2 3 4 5 6 7 8 9 10] F2:[3x2双] F3:[4x4双]

计算每个矩阵的手段。的意思是返回包含每列平均值的向量,因此不能以数组的形式返回平均值。要返回结构中的方法,请指定“UniformOutput”,假的名称-值对。

a = structfun(@均值,s,'统一输出'假)
A =结构体字段:F1:5.5000 F2:[4 5] F3:[0.6902 0.3888 0.7627 0.5962]

创建一个标量结构。

S.F1 = 1:10;S.F2 = [2 3;4 5;6 7];S.F3 = RAND(4,4)
S =结构体字段:F1:[1 2 3 4 5 6 7 8 9 10] F2:[3x2双] F3:[4x4双]

计算中每个数组的大小S..行数和列数都在3 × 1的数字数组中。

[nrows,ncols] = structfun(@ size,s)
nrows =.3×11 3 4
ncols =.3×110 2 4.

输入参数

全部折叠

函数应用于指定为函数句柄的输入标量结构的字段。

fun可以对应多个函数文件,因此可以表示一组重载函数。在这些情况下,用MATLAB®基于输入参数的类确定要调用哪个函数。

例子:a = structfun(@ max,s)返回每个字段的最大值S.

输入结构,指定为标量结构。

名称-值对的观点

指定可选的逗号分离对名称,值参数。名称是参数名称和价值是对应的值。名称必须出现在引号内。您可以按如下顺序指定几个名称和值对参数Name1, Value1,…,的家

例子:a = structfun(@均值,s,'serialOutput',false)返回来自的意思是在具有与之相同的结构中S.

True或false,指定为逗号分隔的对,由'统一化',要么真正的1)或错误的0.).

的价值'统一输出'

描述

真正的1

fun必须返回那个标量吗structfun连接到列向量。

错误的0.

structfun返回的输出fun在一个或多个标量结构中。输出标量结构具有与输入标量结构相同的字段。输出fun可以有任何数据类型。

捕获错误的功能,指定为逗号分隔对组成'ErrorHandler'还有一个函数句柄。如果fun抛出错误,然后指定的错误处理程序'ErrorHandler'捕获错误并接受函数中指定的操作。错误处理程序必须抛出错误或返回与fun.如果是值'统一输出'是真的,那么错误处理程序的输出参数必须是标量并且具有与输出相同的数据类型fun

错误处理程序的第一个输入参数是具有这些字段的结构:

  • 标识符——错误标识符

  • 信息-错误消息文本

  • 指数- 线性索引进入输入阵列fun扔掉错误

错误处理程序的剩余输入参数是呼叫的输入参数fun制作了fun抛出错误。

假设fun返回两个双打作为输出参数。您可以指定错误处理程序'ErrorHandler',@ errorfunc,在那里errorFunc是一个提出警告的函数并返回两个输出参数。

function [A,B] = errorFunc(S,varargin) warning(S。标识符,S.message);一个=南;B =南;结束

如果您未指定'ErrorHandler', 然后structfun重新抛出抛出的错误fun

输出参数

全部折叠

输出阵列,作为任何数据类型的列向量或标量结构返回。

默认情况下,structfun的输出连接fun进入栏载体。fun必须返回标量。如果fun返回对象,然后是对象所属的类必须满足这些要求。

  • 金宝app通过线性索引向对象数组进行支持分配

  • 有一个重塑方法,该方法返回与输入具有相同大小的数组

如果值'统一输出'名称 - 值对参数是错误的0.),然后structfun将输出作为标量结构的字段返回。在这种情况下,来自的输出fun可以有任何尺寸和不同的数据类型。

扩展能力

之前介绍过的R2006a