举步艰难的意思:matlab 函数递归变量问题求教

来源:百度文库 编辑:高校问答 时间:2024/04/27 17:50:29
主文件为
clear all;
n=3;
y=tt(0,0)
函数文件tt.m为
function len =tt(x,y)
global n ;
if n>0
len = tt(x,y) +1;
n=n-1;
else
len=1;
end
我希望得到y=4,但结果是1,我想是变量上出了问题,如何修改?
如有人知道,可发邮件到xiazhifei@yahoo.com.cn,不胜感激.

首先 你的n没有传进去。所以会直接跳到len=1,返回的结果就是1
其次 如果n的值传入tt函数的话,会形成无限递归调用。因为进入递规的时候,n的值一直为3,所以一直满足n>0。无法退出递归。
第三 不知道你的x,y 有什么用处。。。

我改了一下tt函数,你试试看是不是会出现4
function len = tt(x,y,n)
if n>0
n = n -1;
len = tt(x,y,n) + 1;
else
len = 1;
end