Main Content

必須の位置引数とオプションの位置引数の検証

位置引数とは、位置および順序が関数宣言で定義された引数です。引数リスト内で値が渡される位置は、arguments ブロックで引数が宣言される順序に対応していなければなりません。arguments ブロック内の引数名はすべて一意でなければなりません。

arguments ブロック内の位置引数は、引数で既定値が定義されていない限り、関数の呼び出しに際して必要です。引数の宣言で既定値を指定すると、位置関数は任意になります。これは、関数呼び出しで値が渡されない場合、MATLAB® は既定値を使用できるためです。

オプション引数の既定値の設定

既定値には、定数か、または引数宣言を満たす結果を生成する式を指定できます。式は、arguments ブロック内でそれより前に宣言されている引数を参照できますが、それより後に宣言される引数は参照できません。

MATLAB は、関数呼び出しに引数が含まれていない場合にのみ、既定値の式を評価します。

arguments ブロックでは、すべてのオプションの引数を、すべての必須の引数の後に配置しなければなりません。たとえば、次の引数ブロックでは、maxvalminval は既定値をもつためオプションとなります。

function myFunction(x,y,maxval,minval)
    arguments
        x (1,:) double
        y (1,:) double
        maxval (1,1) double = max(max(x),max(y))
        minval (1,1) double = min(min(x),min(y))
    end

    % Function code
    ....
end

この関数は、次のいずれかの構文を使用して呼び出すことができます。

myFunction(x,y,maxval,minval) 
myFunction(x,y,maxval) 
myFunction(x,y) 

オプションの位置引数は、後続の引数を識別するために関数呼び出し内でその位置を埋める必要がある場合には、必須になります。つまり、minval の値を指定する場合は、maxval の値を指定しなければなりません。

無視される位置引数

MATLAB では、チルダ文字 (~) を引数の代わりに渡すことにより、引数を無視できます。関数シグネチャの引数の位置に対応する arguments ブロック内で、チルダ文字 (~) を追加することで、未使用の位置引数を無視する関数を定義できます。関数シグネチャ内の無視される引数それぞれにチルダ文字 (~) を追加します。

無視される引数は既定値をもつことができず、また、クラス、サイズ、検証関数を指定できません。

チルダ文字 (~) は、その後に必須の位置関数が続いていない場合、オプションの引数として扱われます。たとえば、次の関数ではチルダ文字 (~) はオプションの引数を表します。

function c = f(~)
    arguments
        ~
    end

    % Function code
end

この関数は、引数を指定せずに呼び出すことができます。

c = f 

また、この関数は、1 つの引数を指定して呼び出すこともできます。

c = f(2)

次の関数では、チルダ文字 (~) は必須の引数を表します。

function c = f(~,x)
    arguments
        ~
        x
    end

    % Function code
    ...
end

この関数の呼び出しには、どちらの引数も含まれていなければなりません。

c = f(2,3)

無視される入力を指定した関数呼び出しの詳細については、関数定義の入力の無視を参照してください。

参考

|

関連するトピック