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