我正在尝试使用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时,请确定类型。即使以后的分配是重复分配或其他分配,它也会保留其类型。
>> x=uint32(1)
x =
uint32
1
>> x(2)=double(2)
x =
1×2 uint32 row vector
1 2