I need help with this trivial function.

8 次查看(过去 30 天)
I'm trying to run this script but I keep getting this error mensage:
??? Input argument "x" is undefined.
Error in ==> fibonacci at 8
Could anybody help me? Here is the code:
function y = fibonacci(x)
if x == 0
y = 0
elseif x == 1
y = 1
else
y = fibonacci(x-1) + fibonacci(x-2)
end
  2 个评论
Roger Stafford
Roger Stafford 2013-8-1
It should be pointed out that evaluating the Fibonacci series using this kind of recursion is particularly inefficient. The number of recursive calls on the function for an argument value of x would be even greater than the corresponding Fibonacci value at x, which is to say that it increases exponentially in x.
Jan
Jan 2013-8-1
@Roger: Exactly. And this is the cause, why Fibonacci is such a famous example for learning how to apply recursive programming and why to avoid it. See also: http://www.mathworks.com/matlabcentral/answers/2346-hump-day-challenger-recursion

请先登录,再进行评论。

采纳的回答

Dishant Arora
Dishant Arora 2013-8-1
编辑:Dishant Arora 2013-8-1
This isn't a script, it's a function. You need to pass input argument while calling the function.
x = 4 ;
y = fibonacci(4) or fibonacci(x);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by