Matrix multiplication in a for-loop

22 Ansichten (letzte 30 Tage)
Ammar G.
Ammar G. am 5 Feb. 2020
I'm currently trying to transform this expression:
k = 1:m;
t1 = sum((theta(1) + theta(2) .* X(k,2)) - y(k));
t2 = sum(((theta(1) + theta(2) .* X(k,2)) - y(k)) .* X(k,2));
theta(1) = theta(1) - (alpha/m) * (t1);
theta(2) = theta(2) - (alpha/m) * (t2);
into a for loop expression, so that it will work for longer theta vectors. So far I came up with this:
for j=1,length(theta)
t = sum(((X * theta)- y) .* X(:,j));
theta(j) = theta(j) - (alpha/m) * t;
end
But the values for theta(2) are not updated. What am I doing wrong?

Akzeptierte Antwort

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH am 5 Feb. 2020
you have 1,length(theta), change it by 1:length(theta) :
for j=1:length(theta)
t = sum(((X * theta)- y) .* X(:,j));
theta(j) = theta(j) - (alpha/m) * t;
end

Weitere Antworten (0)

Kategorien

Mehr zu Polynomials finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by