normxcorr2​により自己相関関数は​求まりますか?

normxcorr2を使用して自己相関関数を求めております。
操作として、normxcorr2の引数2つに同一のデータを使用しました。
具体的なコードは下記の通りです。
A = eye(10,10);
A2 = normxcorr2(A,A);
本来、A2(10,10)は引数の差異が0であり1になるはずですが、1.000000000000001のように誤差が生じる結果となりました。
この原因として、normxcorr2の使用方法に誤りがあると推測しています。
実際、normxcorr2のヘルプセンターのページで、
「意味のある正規化をするには、引数2が引数1よりも大きくなければならない」
と記載されています。
以上の計算誤差が生じる具体的な原因が何であるのかご回答をいただきたいです。
よろしくお願いします。

 Akzeptierte Antwort

Etsuo Maeda
Etsuo Maeda am 13 Apr. 2020

2 Stimmen

回答がついていないようなので
二次元相関係数をもとめるだけならcorr2でよいかとおもいます。
1.000000000000001 は浮動小数点数の誤差の累積ですね。
"意味のある正規化をするには、引数2が引数1よりも大きくなければならない" は正規化された相互相関係数をもとめるnormxcorr2において、templateよりもAが小さい場合何がおきるのか確かめてみてください。
以上、ご参考まで

1 Kommentar

rin hayashi
rin hayashi am 15 Jul. 2020
ご回答いただきありがとうございます.
ご返信が遅れてしまい申し訳ありません.
>二次元相関係数をもとめるだけならcorr2でよいかとおもいます。
算出した二次元相関係数を基に比較を行うため,正規化を行おうとしておりました.
corr2も使用してみようと思います.
>1.000000000000001 は浮動小数点数の誤差の累積ですね。
累積誤差なのですね...二次元自己相関係数を求めるために同じデータを引数2と引数1に代入していたことが1.000000000000001 の原因かと考えていました.
>"意味のある正規化をするには、引数2が引数1よりも大きくなければならない" は正規化された相互相関係数>をもとめるnormxcorr2において、templateよりもAが小さい場合何がおきるのか確かめてみてください。
承知しました.確認してみようと思います.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Mathematics and Optimization finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!