(Theta1(:,2:end)。^ 2,2)在此代码中是什么意思?

时间:2019-01-08 17:42:59

标签: matlab machine-learning octave regularized

(Theta2(:, 2:end).^2, 2)是什么意思?

p = sum(sum(Theta1(:, 2:end).^2, 2))+sum(sum(Theta2(:, 2:end).^2, 2)); 

2 个答案:

答案 0 :(得分:0)

让我们从最里面的括号开始。首先,Theta1(:, 2:end).^2维护Theta1的所有列,但第一个列平方。用mem1表示结果。然后,sum(mem1,2)计算出列总和,其输出是mem1所有列的总和,因此它是一列本身。 (sum(mem1,1)sum(mem1)计算行总和)。然后sum(sum(mem1,2))计算sum(mem1,2)元素的总和,最终得出Theta1的所有元素之和的平方。 Theta2也是如此。

P.S。您可以简单地使用p = sum(sum(Theta1(:, 2:end).^2+Theta2(:, 2:end).^2));,因为结果相同

答案 1 :(得分:0)

比方说,我们有一个大小为(3,3)的矩阵theta2,我们要计算您给出的上述表达式,即sum(sum(Theta2(:, 2:end)。^ 2,2) )。 首先,让我们打破表达式:

  1. theta2(:,2:end)。^ 2->选择所有行(用':'代替任何行号显示),但选择大于等于2的列并每一项平方。 li>

2.sum(theta2(:,2:end)。^ 2,2)->将各列的平方和求和。

3.sum(sum(theta2(:,2:end)。^ 2,2))->现在,将第二步获得的总和求和。