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