Почему я получаю ошибку неопределенной функции для функции, которую я написал?

Я написал это, чтобы определить n-е число Фибоначчи:

function f=fibfun(n)

if n>2
  f=fibfun(n-1)+fibfun(n-2);
else
  f=1;
end

Это должно работать, но это не так. Если я наберу fibfun(10), ответ должен быть 55. Но все, что я получаю, это:

Неопределенная функция 'fibfun' для входных аргументов типа 'double'.

Что это значит? Что я делаю неправильно?


person WaitForIt    schedule 25.04.2014    source источник


Ответы (2)


Это означает, что MATLAB не может найти вашу функцию — каталог, в котором вы сохранили файл fibfun.m, должен быть либо текущим каталогом, либо определенным в вашем пути к MATLAB.

person Adrian    schedule 25.04.2014
comment
Я не понимаю. Я сохранил файл .m на рабочем столе. Куда мне его сохранить или что мне теперь делать? - person WaitForIt; 25.04.2014
comment
Если вы сохранили на рабочий стол, убедитесь, что рабочий стол является вашим текущим рабочим каталогом. Введите cd в командной строке, чтобы проверить, в какой папке на самом деле находится MATLAB. - person Dang Khoa; 25.04.2014
comment
Как уже упоминалось, либо cd, либо pwd дадут вам ваш текущий рабочий каталог. Для начала я бы поместил файл fibfun.m в этот каталог. - person Adrian; 25.04.2014

Убедитесь, что файл находится на вашем текущем пути.

Использовать:

addpath(genpath('/path/to/file/'));
person Raab70    schedule 25.04.2014