MATLAB 中的斐波那契函数

Fibonacci Function in MATLAB

我正在尝试使用 for 循环为斐波那契数列创建一个函数。我的代码如下:

function fib = fibGenerator(N) 
fib(1) = 0;
fib(2) = 1;
for i = 3:N
   fib(i) = fib(i-1)+fib(i-2);
end

显示以下错误消息:Variable fib must be of data type uint32. It is currently of type double. Check where the variable is assigned a value.

我不确定如何更正此问题。

更新

function fib = fibGenerator(N) 
fibGenerator(1) = uint32(0);
fibGenerator(2) = uint32(1);
for i = 3:N
  fibGenerator(i) = fibGenerator(i-1)+fibGenerator(i-2);
end

你必须在最初创建时进行转换 fib: fib(1) = uint32(0);

这是一个演示这一点的例子。创建 x 时,您决定类型。即使后面的赋值是double或其他类型,它也会保持它的类型。

>> x=uint32(1)
x =
  uint32
   1
>> x(2)=double(2)
x =
  1×2 uint32 row vector
   1   2