具有许多不同类型输入的 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)
将多个(超过 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)