Я использовал объект inputParser
для настройки параметров по умолчанию. Matlab не примет Python-подобный формат, который вы указали в вопросе, но вы должны иметь возможность вызывать функцию следующим образом:
wave(a,b,n,k,T,f,flag,'fTrue',inline('0'))
После того, как вы определите функцию wave
следующим образом:
function wave(a,b,n,k,T,f,flag,varargin)
i_p = inputParser;
i_p.FunctionName = 'WAVE';
i_p.addRequired('a',@isnumeric);
i_p.addRequired('b',@isnumeric);
i_p.addRequired('n',@isnumeric);
i_p.addRequired('k',@isnumeric);
i_p.addRequired('T',@isnumeric);
i_p.addRequired('f',@isnumeric);
i_p.addRequired('flag',@isnumeric);
i_p.addOptional('ftrue',inline('0'),1);
i_p.parse(a,b,n,k,T,f,flag,varargin{:});
Теперь значения, переданные в функцию, доступны через i_p.Results
. Кроме того, я не был уверен, как проверить, что параметр, переданный для ftrue
, действительно был функцией inline
, поэтому оставил валидатор пустым.