0

假设我有两个相同大小的列向量:P 和 Q。我需要做的是找到最小二乘函数距离D = ||P - Q||^2。这是什么意思以及如何在matlab中实现它。我应该使用该norm()功能吗?

4

2 回答 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 回答