関数に渡される、または期待されるすべての引数を取得する方法を探しています。args() コマンドは理想的なようですが、プロシージャでのみ使用できます。とにかくこれを行うことはありますか。
これを行う理由は、より少ない行でチェックできるようにするためです。つまり、すべての入力が数値であることを確認するには、1 つのチェックを記述してからすべての引数に対して実行します。ですから、良い代替案があれば、私はアイデアを受け入れます。
ありがとう
関数に渡される、または期待されるすべての引数を取得する方法を探しています。args() コマンドは理想的なようですが、プロシージャでのみ使用できます。とにかくこれを行うことはありますか。
これを行う理由は、より少ない行でチェックできるようにするためです。つまり、すべての入力が数値であることを確認するには、1 つのチェックを記述してからすべての引数に対して実行します。ですから、良い代替案があれば、私はアイデアを受け入れます。
ありがとう
varargin
ペトリコールが述べたように、を使用できます。varargin
はセルであるため、次を使用して、すべてのパラメーターの検証を 1 行で簡単に実行できますcellfun
。
function c = test(varargin)
cellfun(@(arg)validateattributes(arg, {'numeric'}, {'integer'}), varargin);
上記のコードはvalidateattributes
、すべての関数パラメーターに対して実行されます。一方、名前付き変数が必要な場合は、それらをセルにグループ化し、上記のように特定のテストを実行できます。
function c = test(i1, i2, d1, d2)
% validate integer arguments
cellfun(@(arg)validateattributes(arg, {'numeric'}, {'integer'}), {i1, i2});
% validate double arguments
cellfun(@(arg)validateattributes(arg, {'double'}, {'positive'}), {d1, d2});
あなたが探しているのはvarargin
、可変数の入力引数を操作できるようにすることです。