将不同类型和大小的多个(超过20个)变量传递给函数的最佳方法是什么?
这些变量的类型有数字,字符串,向量,矩阵和单元格。
目前这是我处理它的方式:
% BEGIN main m-file
...
parameter1=
parameter2=
.
.
.
Func1
% END main m-file
我的职能:
function Func1
parameter1=evalin('base','parameter1');
parameter2=evalin('base','parameter2');
.
.
.
% do something
end
我想知道是否有更好的方法吗? 谢谢
答案 0 :(得分:3)
在将大量参数传递给函数时,我更喜欢使用structs
。如果你有大量的常规参数,最好使用矢量或单元格数组,但对于混合参数structures更方便,你可以给字段名称提供有用的名称:
options.gain = 5.432;
options.offset = 1.23;
options.title = 'Just a straight line';
options.matrix = [1, 2; 3, 4];
你可以像这样定义你的函数:
function do_something(options, x)
y = options.gain * x + options.offset;
plot(x, y)
title(options.title)