Main Content

squareform

説明

ZOut = squareform(yIn) は、m 個の観測値についての長さ m(m-1)/2 のペアワイズ距離ベクトル yIn を、対角要素がゼロになっている m 行 m 列の対称行列 ZOut に変換します。

yIn 内のペアワイズ距離は、(2,1)、(3,1)、...、(m,1)、(3,2)、...、(m,2)、...、(m,m–1) という順序で編成されます。i 番目の観測値と j 番目の観測値 (i≤j) の間のペアワイズ距離は ZOut(i,j)yIn((i–1)*(m–i/2)+j–i) に格納されます。

yOut = squareform(ZIn) は、対角要素がゼロになっている正方対称行列 ZIn を、ZIn の対角要素の下にある要素が含まれているベクトル yOut に変換します。

ZOut = squareform(yIn,'tomatrix') は、squareformyIn をベクトルとして扱わせ、yIn を行列に変換します。

yOut = squareform(ZIn,'tovector') は、squareformZIn を行列として扱わせ、ZIn をベクトルに変換します。ZIn がスカラー (1 行 1 列) である場合、ZIn はゼロでなければなりません。

上記の 2 つの構文は、入力引数がスカラーである場合に便利です。'tomatrix''tovector' も指定しなかった場合、既定は 'tomatrix' です。

すべて折りたたむ

観測値ペア間のユークリッド距離を計算し、squareform を使用して距離ベクトルを行列に変換します。

3 つの観測値と 2 つの変数を使用して行列を作成します。

rng('default') % For reproducibility
X = rand(3,2);

ユークリッド距離を計算します。

D = pdist(X)
D = 1×3

    0.2954    1.0670    0.9448

ペアワイズ距離は (2,1)、(3,1)、(3,2) という順序で編成されます。観測値 i および j の間の距離は、squareform を使用すると簡単に求めることができます。

Z = squareform(D)
Z = 3×3

         0    0.2954    1.0670
    0.2954         0    0.9448
    1.0670    0.9448         0

squareform は、Z(i,j) が観測値 i および j の間のペアワイズ距離に対応する対称行列を返します。たとえば、観測値 2 および 3 の間の距離は次のように求めることができます。

Z(2,3)
ans = 0.9448

Z を関数 squareform に渡して、関数 pdist の出力を再現します。

y = squareform(Z)
y = 1×3

    0.2954    1.0670    0.9448

squareform の出力 ypdist の出力 D は同じです。

入力引数

すべて折りたたむ

入力距離ベクトル。長さ m(m-1)/2 の数値ベクトルまたは logical ベクトルを指定します。m は観測値の個数です。

yIn 内のペアワイズ距離は、(2,1)、(3,1)、...、(m,1)、(3,2)、...、(m,2)、...、(m,m–1) という順序、つまり m 行 m 列の距離行列の左下三角の列順で編成されます。観測値 i および j の間のペアワイズ距離は、i≤j について yIn((i–1)*(m–i/2)+j–i) にあります。

yIn は、関数 pdist を使用して作成できます。m は、pdist の入力データに含まれている観測値の個数です。

データ型: single | double | logical

入力距離行列。数値行列または logical 行列を指定します。ZIn は、対角要素がゼロになっている m 行 m 列の対称行列です。m は観測値の個数です。ZIn(i,j) は、i 番目の観測値と j 番目の観測値の間の距離を表します。

データ型: single | double | logical

出力引数

すべて折りたたむ

距離ベクトル。長さ m(m-1)/2 の数値ベクトルまたは logical ベクトルとして返されます。m は観測値の個数です。

yOut 内のペアワイズ距離は、(2,1)、(3,1)、...、(m,1)、(3,2)、...、(m,2)、...、(m,m–1) という順序、つまり m 行 m 列の距離行列の左下三角の列順で編成されます。観測値 i および j の間のペアワイズ距離は、i≤j について yOut((i–1)*(m–i/2)+j–i) にあります。

yOut の形式は、関数 pdist の出力と同じです。

距離行列。数値行列または logical 行列として返されます。ZOut は、対角要素がゼロになっている m 行 m 列の対称行列です。m は観測値の個数です。ZOut(i,j) は、i 番目の観測値と j 番目の観測値の間の距離を表します。

ヒント

  • squareform を使用すると、相関係数行列 (corrcoef) など、距離ベクトルまたは行列に似ているベクトルまたは行列の形式を設定できます。

拡張機能

バージョン履歴

R2006a より前に導入

参考