Matlab——varargin

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

搞定~!

发布了3 篇原创文章 · 获赞 0 · 访问量 35

猜你喜欢

转载自blog.csdn.net/weixin_45686780/article/details/105148451
今日推荐