При попытке написать функцию для градиентного спуска в Matlab я получил следующую ошибку: Function with duplicate name "gradientDescent" cannot be defined
. Программа, над которой я работаю, имеет в ней две функции, и когда я удаляю вторую проблему, проблема исчезает. Я не понимаю, почему это происходит, учитывая, что две функции имеют совершенно разные имена. Вот код:Ошибка «Функция с дублирующимся именем не может быть определена», но нет дублирующейся функции
function dJ = computeDerivative(X, y, theta, feature)
m = length(y); % number of training examples
hypothesis = X * theta;
error = ((hypothesis - y)/m) .* X(feature, :)
dJ = sum(error);
end
function theta = gradientDescent(X, y, theta, alpha, num_iters)
%GRADIENTDESCENT Performs gradient descent to learn theta
% theta = GRADIENTDESENT(X, y, theta, alpha, num_iters) updates theta by
% taking num_iters gradient steps with learning rate alpha
m = length(y); % number of training examples
for iter = 1:num_iters
for i = 1:length(theta)
theta(i) = theta(i) - alpha * computeDerivative(X, y, theta, i)
end
end
end
Когда вы получите сообщение об ошибке? – aarbelle
Поместите их в отдельные файлы. – beaker
Я получаю сообщение об ошибке при попытке вызвать функцию gradientDescent во втором файле. Во втором файле нет функции с тем же именем, и я не добавил ее сюда, потому что тот факт, что ошибка удаляется после удаления второй функции из исходного файла, заставляет меня думать, что проблема локальная. –