MATLAB中的斐波那契函数

问题描述 投票:0回答:1

我正在尝试使用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
matlab recursion fibonacci
1个回答
1
投票

最初创建fib时必须强制转换:fib(1) = uint32(0);

这里是一个说明这一点的例子。创建x时,请确定类型。即使以后的分配是重复分配或其他分配,它也会保留其类型。

>> x=uint32(1)
x =
  uint32
   1
>> x(2)=double(2)
x =
  1×2 uint32 row vector
   1   2
© www.soinside.com 2019 - 2024. All rights reserved.