如何对以下代码进行矢量化? 编辑:theta,y是列向量; X是矩阵; alpha,m是标量。
temp1 = theta(1) - alpha/m * sum((X*theta-y).*X(:,1));
temp2 = theta(2) - alpha/m * sum((X*theta-y).*X(:,2));
theta(1) = temp1;
theta(2) = temp2;
我尝试了以下操作,但总和操作不能达到我想要的效果......
temp = alpha/m*sum(bsxfun(@times, (X*theta-y), X))
theta = bsxfun(@minus, theta, temp)
答案 0 :(得分:1)
你需要一个矩阵乘法来对其进行矢量化。
大概:
theta = theta - alpha/m*(X'*((X*theta)-y))