【发布时间】:2014-07-07 10:01:33
【问题描述】:
如何向量化以下代码? 编辑: 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)
【问题讨论】:
-
theta是行向量还是列向量? -
sum运算符做了什么,你想让它做什么而不是做什么? -
两个版本在做不同的事情...正确答案如下..
标签: matlab octave vectorization