0
Matlabの勾配降下関数を書く際に、次のエラーが発生しました: Function with duplicate name "gradientDescent" cannot be defined
。私が取り組んでいるプログラムには2つの機能があり、2つ目の機能を削除すると問題はなくなります。私は、2つの関数が全く異なる名前を持っているので、なぜこれが起こっているのか分かりません。ここでは、コードです:「重複する名前の関数は定義できません」エラーですが、重複する関数はありません
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
2番目のファイルで 'gradientDescent'関数を呼び出す際にエラーが発生します。 2番目のファイルに同じ名前の関数はありません。元のファイルから2番目の関数を削除した後にエラーがなくなるため、問題はローカルであると考えられます。 –