1. ホーム
  2. matlab

[解決済み] MATLABで関数のパラメータにデフォルト値を設定するにはどうすればよいですか?

2022-02-16 10:03:36

質問

MATLABでデフォルトの引数を持つことは可能ですか?

例えば、こんなところです。

function wave(a, b, n, k, T, f, flag, fTrue=inline('0'))

真の解を波動関数のオプション引数として持たせたいのですが、どうすればよいでしょうか?もし可能であれば、どのような方法が適切でしょうか?

現在、上に投稿した内容を試しているのですが、こうなります。

??? Error: File: wave.m Line: 1 Column: 37
The expression to the left of the equals sign is not a valid target for an assignment.

解決方法は?

あなたが試みているような直接的な方法はありません。

通常の方法は、"varargs"を使用して、引数の数に対してチェックを行うことです。のようなものです。

function f(arg1, arg2, arg3)

  if nargin < 3
    arg3 =   'some default'
  end

end

でできることはいくつかあります。 isempty MATLAB Centralで、この種のものをバンドルしたパッケージを探すとよいでしょう。

をご覧ください。 varargin , nargchk など。こういう時に便利な関数です。 ヴァーラグ を使えば、最終引数を可変個にすることができますが、これでは一部または全部のデフォルト値の問題を回避することはできません。