MATLAB 函数默认参数配置
目标:定义函数时,设置某些参数的默认值
思路:使用inputParser
Step1: 使用 varargin (var-arg-in,输入变量列表)用来接收任意个数的输入参数。
Step2: 构造 inputParser 输入解析器ip,利用 addParameter() 定义默认参数及其默认取值。
Step3: 通过 parse() 对输入变量列表 varargin 进行解析,若检测到已定义的参数在 varargin 中被重新赋值(即不使用默认参数),则更新该参数。
Step4: 以 ip.Results.parameter_name 的格式,对参数进行引用,进行后续操作。
Code Demo
%% 配置默认参数start_index=1000,len=20000
% example:
% start_index = 1000; len = 20000;
% result = demo_default('start_index', 1000, 'len', 20000)
function [result] = demo_default(varargin)
%% default parameters
ip = inputParser; % 函数的输入解析器
addParameter(ip,'start_index',1000); % 设置变量名和默认参数(start_index=1000)
addParameter(ip,'len',20000); % 设置变量名和默认参数(len=20000)
parse(ip,varargin{:}); % 对输入变量进行解析,如果检测到前面的变量被赋值,则更新变量取值
start_index = ip.Results.start_index; % 默认参数start_index读取
len = ip.Results.len; % 默认参数len读取
% TO DO
end
Note
函数调用时,若不使用函数中的默认参数,则使用 name_1, value1,...,name_n, value_n 这种字符串和数值组合形式赋值(PS:参数赋值方式,可以不按照函数中定义的顺序进行赋值)。
环境
- MATLAB 2021a
- Windows 10 64bits
参考链接
https://ww2.mathworks.cn/help/matlab/ref/inputparser.html
https://ww2.mathworks.cn/help/matlab/ref/inputparser.addparameter.html