MATLAB 函数可选参数

在本教程中,我们将讨论如何通过使用 MATLAB 中的 narginvarargin 属性来设置函数的可选参数。

使用 MATLAB 中的 vararginnargin 属性设置函数的可选参数

你可以使用函数名称方括号内的 varargin 属性为函数提供任意数量的输入,还可以使用 nargin 属性检查传递给该函数的输入数量。例如,让我们创建一个函数,该函数使用 varargin 属性接受任何数量的输入,然后使用 nargin 属性来获取输入的数量。请参见下面的代码。

clc
Number_of_inputs = sample(2,1,1)
function output = sample(varargin)
    output = nargin;
end

输出:

Number_of_inputs =

     3

如你所见,我们在函数中传递了三个输入,该输入返回输入的总数。varargin 包含一个输入数组,你可以根据需要使用它们。例如,让我们获取输入的数量,然后使用 for 循环打印这些输入。请参见下面的代码。

clc
Number_of_inputs = sample(2,'Hello',[1,2,3]);
function output = sample(varargin)
    output = nargin;
    for i=1:nargin
        disp(varargin{i})
    end
end

输出:

     2

Hello
     1     2     3

如你在输出中看到的,输入已显示。因此,你可以使用索引来获取保存在 varargin 单元格数组中的特定输入,然后根据需要使用它们。所有这些输入都是可选的,但是如果你想添加一些必填的输入,则可以将它们添加到 varargin 之前。请注意,你必须在函数调用期间添加强制性输入。否则,该函数将给出错误。例如,让我们添加两个必需参数,然后添加它们以获取输出,然后将显示可选参数。请参见下面的代码。

clc
sum = sample(2,3,[1,2,3],'Hello')
function output = sample(x,y,varargin)
    output = x+y;
    for i=1:nargin-2
        disp(varargin{i})
    end
end

输出:

     1     2     3

Hello

sum =

     5

如你在输出中所见,已添加前两个输入以获取总和,并显示可选参数。注意,我们已经从 nargin 中减去了两个,因为 nargin 给出了输入的总数,而不是 varargin 单元格数组中存在的输入。查看此链接以获取有关 varargin 属性的更多信息。