主要内容

参数

声明函数参数验证

语法

参数argName1(维度)数据类型{验证器}= defaultValueargNameN……最终参数(重复)……结束

描述

例子

参数……结束声明一个函数的输入参数。块的参数是可选的。如果你有一个参数块,它必须出现在第一个可执行的函数。函数可以包含多个参数块。

每个参数可以有一个或多个限制或默认值,如图所示的语法:

argName(维度)数据类型{验证器}= defaultValue

  • (尺寸)——输入大小,指定为一个以逗号分隔的两个或两个以上的数字,等(1、2),(3、5、2),或(:1)。冒号允许任何长度尺寸。(尺寸)不能包含表达式。

    输入的尺寸必须匹配(尺寸)完全或兼容的指定的大小(尺寸)。例如,(:1)指定的输入必须是1 -n行向量,但一个n1列向量是兼容的。功能重塑一个行向量输入一个列向量。同样,一个尺寸的(2、3)允许输入标量,但它扩展了2×3矩阵的输入。看到兼容数组大小的基本操作为更多的信息。

  • 数据类型数据类型,指定为一个类名,如。输入必须是指定的类型或类型可以转换为该类型。例如,一个指定的函数接受的值类型并将它们转换成

  • {验证器}——以逗号分隔的验证功能,例如mustBeNumericmustBeScalar,包含在花括号。验证功能错误当输入参数不匹配他们的条件。不像数据类型不要修改输入参数,验证功能。验证函数的列表,请参阅参数验证功能

  • defaultValue——默认值必须符合指定的大小,类型和验证规则。默认值也可以是一个表达式。指定一个默认值的参数可选。可选参数必须定位在所需参数和函数签名参数块。

名称-值参数,参数使用表单nv.name,在那里nv函数签名和结构名称的名字是块中的参数名称参数。例如,定义一个函数,它接受名称参数使用结构命名选项

y = myFunction (x,选项)

在块的参数,指定名称参数作为字段的名称:

参数x选项。Name1选项。Name2结束

使用的更多信息参数块,明白了参数块语法

参数(重复)…结束声明重申论点。

例如,如果您创建一个函数命名myplot使用重复的参数X,Y,风格,该函数接受多个组这三个参数,如style1 myplot (x1, y1, x2, y2, style2)。MATLAB®创建一个单元阵列,其中包含所有传入的参数的值。

函数可以只包括一个重复参数块。如果函数包括重复和名称参数,在自己的声明名称参数,参数块后重复参数块分开。

重复参数的更多信息,请参阅重复的参数

例子

全部折叠

编写一个函数,对输入参数的大小限制在一个行向量的长度。使用验证函数向量的数值限制元素。

函数[m s] = twoStats (x)参数x(:1){mustBeNumeric}结束m =意味着(x,“所有”);s =性病(x, 1,“所有”);结束

调用该函数在三元素的行向量。

一个= [1 3 5];[m s] = twoStats (a)
m = 3 s = 1.6330

调用函数与一个列向量也是有效的,因为行和列向量是兼容的。

= (1 3 5)';[m s] = twoStats (a)
m = 3 s = 1.6330

如果你调用这个函数包含非数字值的一个向量,mustBeNumeric验证函数将抛出一个错误。

= (“1”“3”“5”];[m s] = twoStats (a)
错误使用twoStats无效的论点在位置1。值必须为数字。

声明可选名称参数为一个函数,函数声明中包括结构名称,定义参数名称字段的结构参数块。

声明myRectangle函数与选项作为一个结构名称。的两个字段选项,线型线宽名字的函数的名称参数:

函数myRectangle (X, Y,选项)参数XYoptions.LineStyle(1,1)字符串=“-”options.LineWidth(1,1){mustBeNumeric}= 1结束%函数代码结束

这两个参数名称定义默认值,所以他们都是可选的。所有这些语法是有效的方法调用的函数:

myRectangle (4、5) myRectangle (4、5、“线型”,”:“,“线宽”2)myRectangle (4、5、“线宽”2,“线型”,”:“)myRectangle (4、5、“线型”,”:“)myRectangle (4、5、“线宽”,2)

重复参数单参数或参数组,可以重复零个或多个次函数调用。的fRepeat函数接受重复的一组参数x,y,风格。限制输入参数xy向量的双值或值可兑换双打。限制风格的字符串”——“”:“

函数fRepeat (x, y,风格)参数(重复)x(:1)增加一倍y(:1)增加一倍风格{mustBeMember(风格,[”——“,”:“])}结束%重塑细胞阵列的输入和调用绘图函数z =重塑([x, y,风格]1 []);如果~ isempty (z)情节(z {:});结束结束

调用fRepeat两组的输入。MATLAB创建一个单元阵列包含所有传入的值x,另一个数组的值y,三分之一的价值风格。函数然后重塑这些数组变成1-by-6单元阵列,z,并将其传递到情节

x1 = 1:10;日元= 1:10;s1 =”:“;x2 = 1:7;y2 = 1:1.5:10;s2 =”——“;s1 fRepeat (x1, y1, x2, y2, s2)

图显示两行

限制

  • 参数块不支持嵌套函数,抽象方法,或者处理类析构函金宝app数方法。

更多关于

全部折叠

金宝app支持的数据类型

参数声明可以指定任何MATLAB类或外部定义的类,由MATLAB支持,除了Java类,定义COM类和MATLAB类在MATLAB软件7.6版本(换句话说,类定义,不使用金宝appclassdef关键字)。

提示

  • 使用数据类型的限制可能导致输入参数的隐式转换。例如:

    函数y = myFunction (inputArg1)参数inputArg1(1,1)双头……
    这个函数,如果你通过字符串“123”MATLAB作为输入参数,将字符串转换为数值123年类型的

    验证函数不以任何方式改变输入值,所以为了避免数据类型转换,使用一个或多个验证器函数,而不是限制输入数据类型。例如:

    • 为了避免字符串转换成数值,使用mustBeA,mustBeFloat,或mustBeNumeric

    • 为了避免数值转换成字符串,使用mustBeText,mustBeTextScalar,或mustBeNonZeroLengthText

    • 为了避免尺寸转换,使用mustBeVectormustBeScalarOrEmpty

介绍了R2019b