假设我有两个相同大小的列向量:P 和 Q。我需要做的是找到最小二乘函数距离D = ||P - Q||^2
。这是什么意思以及如何在matlab中实现它。我应该使用该norm()
功能吗?
问问题
746 次
2 回答
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.
所以手动求平方和求和要快一点,也许更直观。
于 2013-06-13T07:54:29.037 回答
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 有一个内置函数。
于 2013-06-12T23:25:38.433 回答