matrix - 如何计算向量之和

标签 matrix vectorization octave

我知道这个问题已经被问过多次,但这个答案对我不起作用。我想像这样计算总和

equivation ,

其中 h(x) = X*thetathetanx1 矩阵,Xmxn 矩阵。我尝试这样写:

 f = @(z)(sum(X(z,:)*theta) - y(z))^2;
 v = sum(f([1:m])); % m is length of y

但它给了我这个错误:

error: for x^A, A must be a square matrix.  Use .^ for elementwise power.
error: called from
    computeCost>@<anonymous> at line 26 column 35
    computeCost at line 27 column 4
    ex1 at line 63 column 3

我的等效 for 循环版本如下:

v = 0;
for i = 1:m
  v = v + (sum(X(i,:)*theta) - y(i))^2;
end

请告诉我如何矢量化这个循环。

最佳答案

这段代码:

v = 0;
for i = 1:m
  v = v + (sum(X(i,:)*theta) - y(i))^2;
end

与此代码相同:

v = 0;
for i = 1:m
  v = v + (X(i,:)*theta - y(i))^2;
end

(提示:X(i,:)*theta 是一个点积,并返回一个标量)。

要对其进行向量化,只需对结果求和即可:

v = (X*theta - y).^2;
v = sum(v);

假设y是一个列矩阵(mx1)。请注意,如您的错误消息所示,我使用了 .^ 。这是每个元素的幂,而不是矩阵幂^

关于matrix - 如何计算向量之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51089976/

相关文章:

matlab - 如何在 Octave 中绘制和显示正方形?

file - 在 Octave 中将矩阵写入文本文件的最快方法是什么?

python - 使用 SFrame 和 SArray 与 Graphlab 和/或 Numpy 进行矩阵乘法

javascript - 二维数组及其矩阵表示约定

python - 在没有for循环的情况下比较Numpy中两个3D矩阵的数组

matlab - 将中间级别插入嵌套结构数组

matlab - 阻止从文件流式传输时的音频失真( Octave )

r - R中单行矩阵内的多个替换

c - 矩阵的结构

Java 自动矢量化示例