27 変数の 2 つの行ベクトル間のマハラノビス距離mahal
を計算するために適用しようとしました。つまり、とは 2 つのベクトルです。ただし、エラーが発生します。 mahal(X, Y)
X
Y
The number of rows of X must exceed the number of columns.
数分の調査の後、このように使用できないことがわかりましたが、その理由はまだわかりません. 説明してもらえますか?
mahal
また、メソッドの例を以下に示します。
>> mahal([1.55 5 32],[5.76 43 34; 6.7 32 5; 3 3 5; 34 12 6;])
ans =
11.1706
この場合、MATLABがどのように答えを計算するかを誰かが明確にすることができますか?
編集:
マハラノビス距離を計算するこのコードを見つけました:
S = cov(X);
mu = mean(X);
d = (Y-mu)*inv(S)*(Y-mu)'
d = ((Y-mu)/S)*(Y-mu)'; % <-- Mathworks prefers this way
でテストしたところ[1.55 5 32]
、関数 (11.1706)[5.76 43 34; 6.7 32 5; 3 3 5; 34 12 6;]
を使用した場合と同じ結果が得られ、mahal
27 変数の 2 つのベクトル間の距離を計算しようとしたところ、うまくいきました。あなたはそれについてどう思いますか?mahal
関数が必要なことを実行できないため、このソリューションを当てにすることはできますか?