varargin在matlab中的应用
我有一个函数包含输入参数,如varargin在matlab中的应用,matlab,function,variables,input,Matlab,Function,Variables,Input,我有一个函数包含输入参数,如var1到var5,我想使用varargin来定义用户定义的输入参数,如何将var1分配到var5来输入参数? 我试过了,但这会产生错误,如未定义函数或变量var1。 调用函数时,如果要跳过var2,该怎么办? 我的代码: function out= myFunc(varargin) varargin{1} = var1; varargin{2} = var2; varargin{3} = var3; varargin{4} = var4; varargin{5}
var1
到var5
,我想使用varargin
来定义用户定义的输入参数,如何将var1
分配到var5
来输入参数?
我试过了,但这会产生错误,如未定义函数或变量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
将要分配给的变量放在
=
符号的左侧,而不是右侧
您还可以使用单元格数组上的冒号运算符,通过逗号分隔的列表执行多个赋值,如果您知道至少会有那么多参数传递给此函数的话
[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};
我认为你在做另一件事。它必须是-
var1=varargin{1}代码>,var2=varargin{2}代码>等等。是否要跳过分配给var2
?跳过它varargin
提供函数的输入列表。如果我跳过var2,输入var3,那么对var2=varargin{2}有什么影响代码>?为您编写的代码-函数out=myFunc(varargin)var1=varargin{1};var3=varargin{3};var4=varargin{4};var5=varargin{5};%%//用var1,var3,var4,var5返回做一些事情代码>var2呢?如果它被定义了,或者它没有被定义?您的解决方案似乎足够令人印象深刻,请告诉更多,如果在函数调用期间跳过一个参数,有什么方法可以做到这一点吗?