このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
関数の引数の検証を宣言
参数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列の行列に展開されます。詳細については,基本的な演算で互換性のある配列サイズを参照してください。
——データ型。数据类型
双
などのクラス名として指定します。入力は指定された型,またはその型に変換できる型でなければなりません。たとえば,双
を指定する関数は单
型の値を受け入れて,それらの値を双
に変換します。
——中かっこで囲まれた{验证器}
mustBeNumeric
やmustBeScalarOrEmpty
などの検証関数のコンマ区切りのリスト。検証関数は,入力引数がその条件と一致しない場合エラーになります。
と異なり,検証関数は入力引数を変更しません。検証関数の一覧については,引数の検証関数を参照してください。数据类型
——既定値は,指定されたサイズ,型,および検証ルールと一致しなければなりません。既定値は式にすることもできます。既定値を指定すると,引数はオプションになります。オプションの引数は,関数シグネチャとdefaultValue
参数
ブロック内で必須の引数の後に配置しなければなりません。
名前と値の引数では,
は参数
形式を使用します。ここで,nv.name
は関数シグネチャの構造体名で,nv
は参数ブロックの引数名です。たとえば,的名字
选项
という名前の構造体を使用して,名前と値の引数を受け入れる関数を定義します。
y = myFunction (x,选项)
参数ブロックで,次のように,名前と値の引数の名前をフィールドとして指定します。
参数x选项。Name1选项。Name2结束
一般的な参数
ブロックの使用方法の詳細については,参数ブロック構文を参照してください。
参数(重复)…结束
は,繰り返し引数を宣言します。
たとえば,繰り返し引数X
、Y
,および风格
を使用してmyplot
という名前の関数を作成すると,style1 myplot (x1, y1, x2, y2, style2)
のように,これら3つの引数の複数のセットが受け入れられます。MATLAB®では,その引数で渡されるすべての値を含む细胞配列が作成されます。
関数には1つの繰り返し引数ブロックのみ含めることができます。関数に繰り返し引数および名前と値の引数をどちらも含める場合は、名前と値の引数を独自に宣言し、繰り返し引数ブロックの後に arguments ブロックを分けます。
繰り返し引数の詳細については,繰り返し引数を参照してください。
引数ブロックは入れ子関数,抽象メソッド,またはハンドルクラスのデストラクターメソッドではサポートされません。
データ型制限を使用すると,入力引数の暗黙の変換が行われます。以下に例を示します。
function y = myFunction(inputArg1) arguments inputArg1 (1,1) double end…
“123”
を入力引数として渡すと,MATLABがで字符串双
型の数値123
に変換されます。検証関数では入力値は変更されないため,データ型の変換を回避するには,入力を制限するデータ型ではなく,1つ以上の検証関数を使用します。以下に例を示します。
字符串から数値への変換を回避するには,mustBeA
、mustBeFloat
,またはmustBeNumeric
を使用します。
数値から字符串への変換を回避するには,mustBeText
、mustBeTextScalar
,またはmustBeNonZeroLengthText
を使用します。
サイズ変換を回避するには,mustBeVector
またはmustBeScalarOrEmpty
を使用します。