Matlab错误:未定义输入参数

时间:2014-05-29 17:48:36

标签: matlab-guide

我把这个函数写成:

function f = factorial(x) 
f = prod(1:x);
f =factorial(5);
end

但是当我尝试运行它时,它表示未定义输入参数。 这有什么问题?

1 个答案:

答案 0 :(得分:0)

你已经定义了一个无休止地进行递归的函数。

f = factorial(5);
在第三行中的

将再次调用你的函数,然后它会在你的函数到达第三行后再次调用它,然后再调用你的函数......所以它永远不会完成。

实现递归解决方案时,您需要提供基本案例。这是计算阶乘的一个例子。

function f = factorial(x)
    if x == 0 % this is the base case
        f = 1;
    else
        f = x*factorial(x-1); % this is the recursive case
    end
end

示例:

>> factorial(5)       
ans =
   120

至于你的

  

输入参数未定义

问题,您需要告诉我们您实际使用的输入参数。对于上面的示例,任何*整数x>=0都应该有效。

*只要f有足够的字节来保存结果。