主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

参数

関数の引数の検証を宣言

構文

参数argName1 (dimensions) dataType {validators} = defaultValue...argNameN……end arguments (repeat)…结束

説明

参数……结束は,関数の入力引数を宣言します。参数ブロックはオプションです。参数ブロックを含める場合は,関数の最初の実行可能行の前になければなりません。関数には複数の参数ブロックを含めることができます。

各引数には,次の構文に示すように1つ以上の制限または既定値を指定できます。

argName (dimensions) dataType {validators} = defaultValue

  • (尺寸)——入力サイズ。(1、2)(3、5、2)(: 1)など2つ以上の数値のコンマ区切りリストとして指定します。コロンを使用すると,その次元で任意の長さが許可されます。(尺寸)に式を含めることはできません。

    入力の次元は,(尺寸)と完全に一致するか,(尺寸)で指定されたサイズと"互換"しなければなりません。たとえば,(: 1)は,入力が1行n列の行ベクトルでなければならないことを指定しますが,n行1列の列ベクトルが互換します。この関数は,行ベクトル入力を列ベクトルに変更します。同様に,(2、3)のサイズではスカラー入力が許可されますが,入力は2行3列の行列に展開されます。詳細については,基本的な演算で互換性のある配列サイズを参照してください。

  • 数据类型——データ型。などのクラス名として指定します。入力は指定された型,またはその型に変換できる型でなければなりません。たとえば,を指定する関数は型の値を受け入れて,それらの値をに変換します。

  • {验证器}——中かっこで囲まれたmustBeNumericmustBeScalarOrEmptyなどの検証関数のコンマ区切りのリスト。検証関数は,入力引数がその条件と一致しない場合エラーになります。数据类型と異なり,検証関数は入力引数を変更しません。検証関数の一覧については,引数の検証関数を参照してください。

  • defaultValue——既定値は,指定されたサイズ,型,および検証ルールと一致しなければなりません。既定値は式にすることもできます。既定値を指定すると,引数はオプションになります。オプションの引数は,関数シグネチャと参数ブロック内で必須の引数の後に配置しなければなりません。

名前と値の引数では,参数nv.name形式を使用します。ここで,nvは関数シグネチャの構造体名で,的名字は参数ブロックの引数名です。たとえば,选项という名前の構造体を使用して,名前と値の引数を受け入れる関数を定義します。

y = myFunction (x,选项)

参数ブロックで,次のように,名前と値の引数の名前をフィールドとして指定します。

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

一般的な参数ブロックの使用方法の詳細については,参数ブロック構文を参照してください。

参数(重复)…结束は,繰り返し引数を宣言します。

たとえば,繰り返し引数XY,および风格を使用してmyplotという名前の関数を作成すると,style1 myplot (x1, y1, x2, y2, style2)のように,これら3つの引数の複数のセットが受け入れられます。MATLAB®では,その引数で渡されるすべての値を含む细胞配列が作成されます。

関数には1つの繰り返し引数ブロックのみ含めることができます。関数に繰り返し引数および名前と値の引数をどちらも含める場合は、名前と値の引数を独自に宣言し、繰り返し引数ブロックの後に arguments ブロックを分けます。

繰り返し引数の詳細については,繰り返し引数を参照してください。

すべて折りたたむ

入力引数のサイズを,任意の長さの行ベクトルに制限する関数を記述します。検証関数を使用して,そのベクトルの要素を数値に制限します。

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

関数を3つの要素の行ベクトルで呼び出します。

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

行ベクトルと列ベクトルは互換するため,列ベクトルを指定して関数を呼び出すこともできます。

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

非数値を含むベクトルを指定して関数を呼び出すと,検証関数mustBeNumericはエラーをスローします。

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

関数のオプションの名前と値の引数を宣言するには,関数宣言に構造体名を含めて,引数名を参数ブロックのその構造体のフィールドとして定義します。

構造体名として选项をもつ関数myRectangleを宣言します。选项线型および线宽の2つのフィールドは,関数の名前と値の引数の名前です。

函数myRectangle (X, Y,选项)参数XY选项。线型(1,1)字符串“-”选项。线宽(1,1) {mustBeNumeric}= 1结束%函数代码...结束

どちらの引数名にも既定値が定義されているため,両方ともオプションです。以下の構文はすべて,関数を呼び出す有効な方法です。

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

R2021aより前は,弦または文字ベクトルとして名前を渡し,名前と値をコンマで区切ります。両方の構文は以降のリリースでも有効です。

繰り返し引数は,関数呼び出しで0回以上繰り返すことのできる単一の引数または引数のグループです。関数fRepeatは,引数xy,および风格の繰り返しグループを受け入れます。入力引数xおよびyを双値のベクトルまたは双に変換可能な値に制限します。风格を字符串”——“”:“に制限します。

函数fRepeat (x, y,风格)参数(重复)x(: 1)增加一倍y(: 1)增加一倍风格{mustBeMember(风格 ,["--",":"])}结束重塑输入和调用plot函数的单元格数组z =重塑([x, y,风格]1 []);如果~ isempty (z)情节(z {:});结束结束

2つの入力グループを指定してfRepeatを呼び出します。MATLABでは、xで渡されるすべての値を含む细胞配列,yの値の別の配列,および风格の値の3つ目の配列が作成されます。これらの配列は1行6列の细胞配列zに変更されて,情节に渡されます。

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

显示两条线的图

制限

  • 引数ブロックは入れ子関数,抽象メソッド,またはハンドルクラスのデストラクターメソッドではサポートされません。

詳細

すべて折りたたむ

サポートされているデータ型

引数の宣言では,Javaクラス,COMクラス,およびMATLABソフトウェア7.6版本より前に定義されたMATLABクラス(classdefキーワードを使用しないクラス定義)を除く,任意のMATLABクラス,またはMATLABでサポートされている外部定義クラスを指定できます。

ヒント

  • データ型制限を使用すると,入力引数の暗黙の変換が行われます。以下に例を示します。

    function y = myFunction(inputArg1) arguments inputArg1 (1,1) double end…
    この関数では,字符串“123”を入力引数として渡すと,MATLABがで字符串型の数値123に変換されます。

    検証関数では入力値は変更されないため,データ型の変換を回避するには,入力を制限するデータ型ではなく,1つ以上の検証関数を使用します。以下に例を示します。

    • 字符串から数値への変換を回避するには,mustBeAmustBeFloat,またはmustBeNumericを使用します。

    • 数値から字符串への変換を回避するには,mustBeTextmustBeTextScalar,またはmustBeNonZeroLengthTextを使用します。

    • サイズ変換を回避するには,mustBeVectorまたはmustBeScalarOrEmptyを使用します。

R2019bで導入