Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
varargin在matlab中的应用_Matlab_Function_Variables_Input - Fatal编程技术网

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呢?如果它被定义了,或者它没有被定义?您的解决方案似乎足够令人印象深刻,请告诉更多,如果在函数调用期间跳过一个参数,有什么方法可以做到这一点吗?