Function MATLAB函数中的可选参数
如何使用可选参数在MATLAB中声明函数Function MATLAB函数中的可选参数,function,math,matlab,parameters,arguments,Function,Math,Matlab,Parameters,Arguments,如何使用可选参数在MATLAB中声明函数 例如:函数[a]=train(x,y,opt),其中opt必须是可选参数。关于如何执行此操作,有几个不同的选项。最基本的方法是使用,然后使用nargin、size等来确定可选参数是否已传递给函数 % Function that takes two arguments, X & Y, followed by a variable % number of additional arguments function varlist(X,Y,varar
例如:
函数[a]=train(x,y,opt)
,其中opt必须是可选参数。关于如何执行此操作,有几个不同的选项。最基本的方法是使用,然后使用nargin
、size
等来确定可选参数是否已传递给函数
% Function that takes two arguments, X & Y, followed by a variable
% number of additional arguments
function varlist(X,Y,varargin)
fprintf('Total number of inputs = %d\n',nargin);
nVarargs = length(varargin);
fprintf('Inputs in varargin(%d):\n',nVarargs)
for k = 1:nVarargs
fprintf(' %d\n', varargin{k})
end
一个更优雅的解决方案是使用该类定义函数所需的所有参数,包括必需参数和可选参数
inputParser
还允许您对所有参数执行类型检查。一种简单的方法是通过nargin
(中的N个参数)。缺点是您必须确保您的参数列表和nargin检查匹配
值得记住的是,所有输入都是可选的,但是如果调用未设置的变量,函数将带着错误退出。以下示例为b
和c
设置默认值。如果a
不存在,将退出
function [ output_args ] = input_example( a, b, c )
if nargin < 1
error('input_example : a is a required input')
end
if nargin < 2
b = 20
end
if nargin < 3
c = 30
end
end
函数[output_args]=输入_示例(a、b、c)
如果nargin<1
错误('输入\示例:a是必需的输入')
结束
如果nargin<2
b=20
结束
如果nargin<3
c=30
结束
结束
一个很好的方法不是使用nargin
,而是检查变量是否已使用存在('opt','var')
设置
例如:
function [a] = train(x, y, opt)
if (~exist('opt', 'var'))
opt = true;
end
end
查看这个答案,了解这样做的好处:可能重复,在这里和这里进行了很好的讨论