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
我正在尝试使用 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