如何在 MATLAB 中声明带有可选参数的函数?
例如:function [a] = train(x, y, opt)
,其中 opt 必须是可选参数。
最佳答案
关于如何执行此操作有几个不同的选项。最基本的是使用 varargin
,然后使用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
类来定义你的函数期望的所有参数,包括必需的和可选的。 inputParser
还允许您对所有参数执行类型检查。
关于function - MATLAB 函数中的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6764062/