matlab递归问题

这是递归函数
function [y]=recur(n)
if n==0
y=0.3;
else if n>=1
y=0.3+(0.7).*recur(n-1);
end
end
然后
n=0:1:20;
y=recur(n);

stem(n,y(1:length(n)),'filled')
xlabel('n')
ylabel('y')
出错了求大神解答

主程序

clc,clear all,close all

n=1;

while n<20

y=recur(n);

stem(n,y(1:length(n)),'filled'),hold on

n=n+1;

end

xlabel('n'),ylabel('y')

自定义函数

function y=recur(n)

if n==0

    y=0.3;

    return;

else

    y=0.3+(0.7).*recur(n-1);

    return;

end

end

运行结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-21
for n=0:1:20
y(n+1)=recur(n);
end

stem(0:1:20,y(1:length(y)),'filled')
xlabel('n')
ylabel('y')本回答被网友采纳
相似回答