Matlab函数具有许多不同类型的输入

时间:2015-01-25 15:10:29

标签: matlab function

将不同类型和大小的多个(超过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

我想知道是否有更好的方法吗? 谢谢

1 个答案:

答案 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)