主要内容

structfun

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

描述

例子

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

你不能指定顺序structfun计算一个或者依赖于它们以特定的顺序进行。

例子

一个= structfun (函数年代名称,值适用于函数附加选项由一个或多个指定名称,值对参数。例如,要在结构中返回输出值,请指定“UniformOutput”,假的.你可以返回一个作为一个结构函数返回不能连接到数组中的值。返回的结构具有与年代

例子

(A1,…,一个米] = structfun(___返回多个输出数组A1,…,函数返回输出值。函数是否可以返回具有不同数据类型的输出参数,但每次输出的数据类型必须相同函数被称为。您可以将此语法与前面语法的任何输入参数一起使用。

例子

全部折叠

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

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 double] f3: []

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

一个= structfun (@mean S)
一个=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.9575 0.9649] y: [0.1576 0.9706 0.9572 0.4854 0.8003 0.1419 0.218 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”;(2页)。标志=“+”;(3页)。标志=“年代”;持有

图中包含一个坐标轴。轴线包含3个线型对象。

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

S.f1 = 1:10;S.f2 = [2 3;4 5;6 7];S.f3 =兰德(4,4)
S =结构体字段:F1: [1 2 3 4 5 6 7 8 9 10] f2: [3x2双]f3: [4x4双]

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

= structfun (@mean年代,“UniformOutput”假)
一个=结构体字段: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 =兰德(4,4)
S =结构体字段:F1: [1 2 3 4 5 6 7 8 9 10] f2: [3x2双]f3: [4x4双]

计算每个数组的大小年代.行数和列数都是3乘1的数字数组。

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

输入参数

全部折叠

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

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

例子:一个= structfun (@max S)的每个字段的最大值年代

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

名称-值对的观点

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

例子:= structfun (@mean年代,UniformOutput,假)返回的意思是在具有相同字段的结构中年代

True或false,指定为逗号分隔的对,由“UniformOuput”,要么真正的1)或0).

的价值“UniformOutput”

描述

真正的1

函数必须返回标量吗structfun连接成列向量。

0

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

函数捕获错误,指定为逗号分隔的对,由“ErrorHandler”和一个函数句柄。如果函数抛出错误,然后指定的错误处理程序“ErrorHandler”捕获错误并执行函数中指定的操作。错误处理程序必须抛出错误或返回与函数.如果“UniformOutput”为true时,则错误处理程序的输出参数必须为标量,并且具有与函数

错误处理程序的第一个输入参数是一个包含以下字段的结构:

  • 标识符——错误标识符

  • 消息-错误信息文本

  • 指数-输入数组的线性索引函数把错误

错误处理程序的其余输入参数是调用的输入参数函数使函数抛出的错误。

假设函数返回两个double作为输出参数。可以将错误处理程序指定为ErrorHandler, @errorFunc,在那里errorFunc是一个引发警告并返回两个输出参数的函数。

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

如果没有指定“ErrorHandler”,然后structfun重新抛出由函数

输出参数

全部折叠

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

默认情况下,structfun连接的输出函数变成一个列向量。函数必须返回标量。如果函数返回对象,那么对象所属的类必须满足这些要求。

  • 万博1manbetx支持线性索引到对象数组的赋值

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

如果“UniformOutput”名称-值对参数为0),然后structfun将输出作为标量结构的字段返回。在这种情况下,输出函数可以有任何大小和不同的数据类型。

扩展功能

之前介绍过的R2006a