请教matlab varargin是什么意思

 我来答
己学好4
2016-04-08 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:5233万
展开全部
你的程序是确定的,不可能“有时可以有时不可以”,现在的代码运行肯定会出错。
varargin一般用于函数的输入参数“可能的最大数量”未知的场合,例如,用fprintf函数进行格式化输出,作为这个函数的设计者,无法预知用户会一次性输出多少数据,这就是varargin最典型的应用场合(当然,参数数量未知,但规律必需已知,否则无法处理)。
就你的程序而言,并没有使用varargin的必要(当然,也可以用)。
从函数ex0116的调用情况看,ex0117的输入可能有1-3个,那么,在输入参数数量不足3个时,必须要有相应的处理。
就函数ex0114而言,其调用可能有1个或2个,那么,在输入参数为1个时,必须对第二个参数D作适当处理,但一般不建议用全局变量(而且,你的代码声明D为全局但没有定义,也不可能起作用)。

附修改后的代码,供参考(第一个函数ex0116无改动):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

function ex0117(ftn,bounds,varargin)
if nargin <3
varargin{1}=1;
end
if nargin <2
bounds=[-1 1];
end
b1=bounds(1);b2=bounds(2);
t=b1+ [0:100]/100*(b2-b1);
x=feval(ftn,t,varargin{:});
plot(t,x)
end

function x=ex0114(t,D)
if nargin==1, D=1; end
t(find(t==0)) =eps;
x=sin(pi*t/D)./(pi*t/D);
end
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式