Я использовал почти каждый ресурс, который мог найти, и до сих пор не нашел конкретного ответа на вопрос, который я задаю. Вот код вопроса
X = data(:, 1:2);
y = data(:,3);
X = [ones(m, 1) X];
startingTheta = zeros(n + 1, 1);
lambda = 0;
% Set options for fminunc, maximum iterations allowed is 500
options = optimset('MaxIter', 500);
% fminunc()
% Optimization function that finds the min point of cost function J
fprintf('Run fminunc');
[theta, cost] = fminunc(@(t)(costFunction(t, X, y, lambda)), startingTheta, options);
fprintf('Done \n');
fprintf('Theta: %f \n', theta);
fprintf('Cost at theta found by fminunc: %f\n', cost);
Как работает эта функция? Нигде в коде не определено. Какое значение передается в параметры t, X, y. Я наткнулся на этот ответ
X = 1; y = 1; % Defining variables which aren't passed into the costFunction
% but which must exist for the next line to pass them as anything!
f = @(t)(costFunction(t, X, y)); % Explicitly define costFunction as a function of t alone
[theta, cost] = fminunc(f, 0, options);
, но он действительно только смутил меня больше. X и y определяются только для того, чтобы не передаваться в функцию costFunction. т нигде не определено! Какие именно значения передаются в эти параметры? Код работает, я просто хочу знать, как / почему?