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

Matlab function with many inputs of different types

将多个(超过 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

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

在将大量参数传递给函数时,我更喜欢使用 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)