0

同じサイズの 2 つの列ベクトル 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.

そのため、手動で 2 乗して合計する方が少し速く、おそらくより直感的です。

于 2013-06-13T07:54:29.037 に答える
1

ユークリッド ノルムの 2 乗、つまり を見つけようとしているだけの場合は、sum((P(i) - Q(i))^2)を使用できますsumsqr(P - Q)

EDIT:ユークリッドノルムは二乗和の平方根として定義されているので、あなたの場合はsqrt(sum((P(i) - Q(i))^2)). それが||P - Q||意味することです。||P - Q||^2上記のように、 MATLAB(P - Q)にはそのための組み込み関数があります。

于 2013-06-12T23:25:38.433 に答える