提取函数参数和允许的值

时间:2015-06-02 16:27:16

标签: matlab

我有一个func1,其中包含可以添加的参数和可用值列表。我正在构建第二个函数func2,它基于第一个函数,但添加了一些新的参数和值。我希望能够在func1中添加func2参数值。我知道我可以将所有func1文件复制到func2中,但是有更好的方法吗?有没有办法从函数中提取参数值?

1 个答案:

答案 0 :(得分:0)

这可以使用varargin来实现。

示例:

<强> func1.m

% simple demo function, squares the 3 input arguments and returns a vector
function [ out ] = func1( in_1, in_2, in_3 )
out = [in_1, in_2, in_3];
out = out.*out;
end

<强> func2.m

% this function adds some functionality to func1
% it needs 2 additional parameters
function [out] = func2(varargin)

if nargin ~=  5
    error('wrong number of arguments');
end

% call func1
out = func1(varargin{1:3});

% append data to output
out = [out, varargin{4:5}];
end

演示输出:

>>func2(1,2,3,4,5)

ans =

     1     4     9     4     5