编写具有不同签名的函数的正确方法是什么?

时间:2016-12-28 18:10:59

标签: matlab

我想编写一个函数,它将 finite 参数列表作为输入参数,并返回另一个输出参数列表。或者,该函数应该采用一个参数,一个包含必要参数的数组,并返回另一个包含输出参数的数组。最后,该函数应该与输入和输出的所有组合一起使用,否则会抛出错误 注意:输入和输出参数都是相同的类型(double)。

例如,请考虑以下函数:

function [e, f, g, h] = example( a, b, c, d )

if nargin == 1
    input = a;             % I rename `a` for clarity
    a = input(1);
    b = input(2);
    c = input(3);
    d = input(4);
end

% Generate e, f, g, h from a, b, c, d

if nargout == 1
    output = [e, f, g, h]; % I work with `output` for clarity, but the output
    e = output;            % variable is `e`
end

end

我想称之为:

[e, f, g, h] = example(a, b, c, d)
[e, f, g, h] = example(input)
output = example(a, b, c, d)
output = example(input)

,其中

input = [a, b, c, d]
output = [e, f, g, h]

那么,定义具有不同“签名”的函数的正确方法是什么?我觉得我实施它的方式可以大大改善。

0 个答案:

没有答案