Komentar v kodu beru jako svoje selhani pri snaze napsat sebevysvetlujici kod. Snazim se jich mit co nejmin a ostatni k tomu nabadam taky.
Osvedcilo se mi to.
No tak si to užij. Akorát si dovolím podotknout, že tady nikdo netvrdil, že kód má být nepřehledný a že komentář je od toho, aby to kompenzoval.
Taky sem nerekl, ze to nekdo tvrdil. byla to reakce na to ze "komentujeme hodne". To mi rika, ze je neco spatne....
EDIT: Muzes sem treba dat kus kodu, ktery podle tebe vyzaduje byti hodne okomentovan. Rad bych ho videl.
Tady je treba kousek kodu, ktery by si okomentovani zaslouzil:
function [lambdaMax, nullMSE] = computeLambdaMax(X, Y, weights, alpha, standardize)
if ~isempty(weights)
observationWeights = true;
weights = weights(
';
normalizedweights = weights / sum(weights);
else
observationWeights = false;
end
[N,~] = size(X);
if standardize
constantPredictors = (range(X)==0);
if ~observationWeights
[X0,~,~] = zscore(X,1);
else
muX = normalizedweights * X;
X0 = bsxfun(@minus,X,muX);
sigmaX = sqrt( normalizedweights * (X0.^2) );
sigmaX(constantPredictors) = 1;
X0 = bsxfun(@rdivide, X0, sigmaX);
end
else
if ~observationWeights
muX = mean(X,1);
X0 = bsxfun(@minus,X,muX);
else
muX = normalizedweights(
' * X;
X0 = bsxfun(@minus,X,muX);
end
end
if observationWeights
wX0 = bsxfun(@times, X0, weights');
end
if ~observationWeights
muY = mean(Y);
else
muY = weights*Y;
end
Y0 = Y - muY;
if ~observationWeights
dotp = abs(X0' * Y0);
lambdaMax = max(dotp) / (N*alpha);
else
dotp = abs(sum(bsxfun(@times, wX0, Y0)));
lambdaMax = max(dotp) / alpha;
end
if ~observationWeights
nullMSE = mean(Y0.^2);
else
nullMSE = weights * (Y0.^2);
end
end