在matlab中使用varargin

时间:2014-04-05 18:05:56

标签: matlab function variables input

我有一个函数包含var1var5的输入参数,我想使用varargin来为用户定义的输入参数,我该如何协助var1var5输入参数? 我尝试过,但这会产生错误,因为未定义的函数或变量var1 。 如果我想在调用函数时跳过var2怎么办? 我的代码:

function  out= myFunc(varargin)
varargin{1} = var1;
varargin{2} = var2;
varargin{3} = var3;
varargin{4} = var4;
varargin{5} = var5;
%operations on var1,var2,var3,var4 and var5 like
var1 == 'variable1';
end

1 个答案:

答案 0 :(得分:1)

将您指定的变量放在=符号的左侧,而不是右侧。

你也可以使用单元格数组上的冒号运算符通过逗号分隔列表进行多次赋值,如果你知道你将至少得到传递给这个函数的那么多参数。

[var1, var2, var3, var4, var5] = varargin{1:5};

如果您知道您将拥有五个参数,则可以在索引参数列表时使用:

[var1, var2, var3, var4, var5] = varargin{:};

如果您对特定的输入参数不感兴趣,可以从右侧的索引列表中省略它,或者使用~作为左侧的占位符来丢弃它。假设你只关心输入1,3和4,并且想要输入输入2和5.你可以做其中任何一个。

[var1, var3, var4] = varargin{[1 3 4]};
[var1, ~, var3, var4, ~] = varargin{1:5};