将许多变量传递给函数的好方法?

时间:2014-08-09 13:03:35

标签: matlab arguments octave

当一个函数在调用时需要许多特定变量时,传递它们的好方法是什么?

是否应该始终明确传递所有变量?如何将它们存储在结构(或对象)中?但不知何故,我认为,这使得事情有点模糊,因为这些结构/对象必须被很好地定义,以确保它们在交给相关函数时具有所有字段。

也可能最快地访问局部变量,而在循环中加入struct字段可能会很慢......

或者运行一个全局定义所有内容的外部脚本是一件好事(但即使在这种情况下,也必须使用global关键字使函数可用)

1 个答案:

答案 0 :(得分:0)

将许多变量传递给函数的好方法是使用varargin。与nargin一起使用。

function varlist2(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

Varargin也可用于可选变量..所以它提供了很多选项......