如何在求和函数中访问数组元素?

How are array elements accessed in summing function?

我正在尝试在 Octave 中实现以下算法:

此算法的代码:

    x = [1
2
3
]

    y = [4,5,6]



m = length(y)

x = [ones(m , 1) , x]

theta = zeros(2, 1);        
printf(mat2str(theta , 2))
sprintf('%f' , theta)

iterations = 5;
alpha = 0.07;

for iter = 1:iterations
     theta
     theta = theta -((1/m) * ((x * theta) - y)' * x)' * alpha;
end

如何访问 y 的每个单独值,因为上面的代码似乎在每次迭代中访问整个 y 矩阵?

是否有一些隐含的功能允许只使用 y 而不是使用 y[i] 之类的东西,其中 i 是当前迭代?

每当总和看起来像

sum(a_i * b_i, for i = 1 ... m)

可以改写为向量之间的点积

A^T * B

其中 A 和 B 是大小为 m 的向量。 在算法描述中,他们使用第一个公式,在代码中,它是第二个。

(x * theta) - y)' * x

是向量 (x * theta) - y)x 之间的点积。