假设我有两个相同大小的列向量:P和Q.我需要做的是找到最小二乘函数距离D = ||P - Q||^2
。这是什么意思,我如何在matlab中实现它。我应该使用norm()
功能吗?
答案 0 :(得分:2)
您可以使用
norm(P-Q)^2
或
sum((P-Q).^2)
小测试:
P = randn(1e7,1);
Q = randn(1e7,1);
tic
norm(P-Q)^2;
toc
tic
sum((P-Q).^2);
toc
结果:
Elapsed time is 0.130086 seconds.
Elapsed time is 0.098494 seconds.
因此,手动平方和求和更快,也许更直观。
答案 1 :(得分:1)
如果您只是想找到欧几里德范数的平方,或者换句话说sum((P(i) - Q(i))^2)
,那么您可以使用sumsqr(P - Q)
。
编辑:欧几里德范数被定义为平方和的平方根,所以在你的情况下它将是sqrt(sum((P(i) - Q(i))^2))
。这就是||P - Q||
的含义。所以||P - Q||^2
只是(P - Q)
的平方和,而MATLAB有一个内置函数,如上所述。