Matlab 函数中怎么调用自身,进行自循环? 20

比如X=myfun(t),如果在函数中要循环调用X(1)在t=k,k=1,2,...100该怎么写... 比如X=myfun(t),如果在函数中要循环调用X(1)在t=k,k=1,2,...100该怎么写 展开
 我来答
tianxiawulang
2013-08-21 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2612万
展开全部

在MATLAB中,一个函数可以调用其它函数,也可以调用自身(即递归调用)。

利用递归算法编写函数的典型例子是计算Fibonacci数列

M-函数文件:

function a = my_fibo(k)
if k == 1 || k == 2
    a = 1;
else
    a = my_fibo(k-1) + my_fibo(k-2);
end

将这个文件写入M-文件编辑器并以名称“my_fibo.m”保存,然后就可以调用:

>> my_fibo(26)
ans =
      121393


递归算法是解决某一类问题的有效方法,但不宜滥用,因为它的运算速度往往很慢。例如

>> tic, n= my_fibo(26) ,toc
n =
      121393

elapsed_time =
                     1.468

 

但如果用一般的循环语句来求解这个问题:

>> tic,n=[1,1];for k=3:100,n(k)=n(k-1)+n(k-2);end,toc,n(26)
elapsed_time =
     0

ans =
      121393

速度差别是非常明显。

追问
那比如y(x+2)=y(x)+y(x+1)在函数中应该怎样表示呢
追答
你说的y是表示一个函数吗?那和上面举的例子是一样的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式