varargin是一个可变输入输出个数的函数
例:用varargin实现任意多个多项式的积
#conv()函数可用于多项式相加
function a=convs(varargin)
a=1;
for i=1:length(varargin), a=conv(a,varargin{i}); end
>> P=[1 2 4 0 5]; Q=[1 2]; F=[1 2 3]; D=convs(P,Q,F)
D =
1 6 19 36 45 44 35 30
>> poly2sym(D)
ans =
x^7+6*x^6+19*x^5+36*x^4+45*x^3+44*x^2+35*x+30
例:用varargin编写一个矩阵相加的函数mat_add()
function A=mat_add(varargin)
x=size(varargin{1})
A=zeros(x)
for i=1:length(varargin),A+=varargin{i};end
索引超出矩阵维数
出错mat_add(line 2)
x=size(varargin{1})
出现了超出维度的问题,主要是因为我对格式不太懂,函数中varargin赋值之前提取了varargin{1}的对象,增加了维度
这里使用最简单的办法
function A=mat_add(varargin)
A=0;
for i=1:length(varargin),A=A+varargin{i};
end
搞定~!