平方差的总和

时间:2015-03-13 08:37:03

标签: matlab

我正在尝试编写一个函数SSD,它需要两个 m x 1 向量并计算平方和差异。

我正在用矢量测试我的SSD功能:

a = [0.5, -0.2, 1.7]';
b = [0.2, 0.9, 0.45]';

我希望得到答案2.862500,但我得到的结果是0.947500

我的功能如下:

function [ z ] = SSD( a, b )

        z = sum( a(:,1) - b(:,1).^ 2 );
end

我是否正确地认为Z = sum( (Ai - Bi).^ 2 )是计算平方差之和的正确方法?如果是这样,为什么我的功能无法正常工作?

1 个答案:

答案 0 :(得分:3)

根据distributive property in mathematics你忘了括号。 我使用(:)缩短了您的代码 - 在任何情况下都会创建一个列向量,这样您就不需要关心输入向量的方向了。

z = sum( (a(:) - b(:)).^2 ) 

如果你有神经网络工具箱,你也可以这样做:

z = sumsqr( a(:) - b(:) )