MATLAB 函数默认参数配置

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

posted @ 2022-02-21 09:01  云梦&&玄龙  阅读(1982)  评论(0编辑  收藏  举报