Функция Фибоначчи в MATLAB - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь создать функцию для чисел Фибоначчи, используя for l oop. Мой код выглядит следующим образом:

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

1 Ответ

1 голос
/ 23 февраля 2020

Вы должны разыграть при первоначальном создании fib: fib(1) = uint32(0);

Вот пример, демонстрирующий это. При создании х вы решаете тип. Даже если последующие присвоения будут двойными или других типов, он сохранит свой тип.

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