📄 vgg_argparse.m
字号:
function [opts,rem_opts] = vgg_argparse(opts,varargin)%VGG_ARGPARSE Parse variable arguments into a structure% opts = vgg_argparse(inopts,varargin)% inopts: structure (cells array) listing valid members and default values% varargin: variable arguments of form '<name>',<value>,...% opts: opts modified by varargin%% Example:% function f = foo(varargin)% opts = vgg_argparse(struct('maxiters',10,'verbose',0), varargin)% ...%% An unknown option (ie, present in varargin but absent in inopts)% causes an error. Calling the function as % [opts,rem_opts] = vgg_argparse(inopts,varargin) returns the unknown% option(s) in rem_opts for later use rather than causes an error.%% May also use OPTS = VGG_ARGPARSE(OPTS, ASTRUCT) where ASTRUCT is a struct% of options.% Author: Mark Everingham <me@robots.ox.ac.uk>% modified by werner, Jan 03% Date: 16 Jan 02if iscell(opts) opts=struct(opts{:});endif length(varargin) & iscell(varargin{1}) if isempty(varargin{1}) inopts = struct([]); else inopts=struct(varargin{1}{:}); endelse if isempty(varargin) inopts = struct([]); elseif isstruct(varargin{1}) inopts = varargin{1}; else inopts=struct(varargin{:}); endendrem_opts = [];fn = fieldnames(inopts);for i=1:length(fn) if isfield(opts,fn{i}) %opts.(fn{i})=inopts.(fn{i}); opts = setfield(opts,fn{i},getfield(inopts,fn{i})); else if nargout < 2 error(sprintf('bad argument: ''%s''', fn{i})); else %rem_opts.(fn{i}) = inopts.(fn{i}); rem_opts = setfield(rem_opts,fn{i},getfield(inopts,fn{i})); end endend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -