Main Content

squareform

거리 행렬 형식 지정

설명

예제

ZOut = squareform(yIn)은 m개 관측값에 대한 길이 m(m–1)/2의 쌍별 거리 벡터인 yIn을 대각선을 따라 0이 있는 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)은 대각선을 따라 0이 있는 정사각형 대칭 행렬인 ZIn을 대각선 아래에 있는 ZIn 요소를 포함하는 벡터인 yOut으로 변환합니다.

ZOut = squareform(yIn,'tomatrix')squareformyIn을 벡터로 취급하도록 강제하고 yIn을 행렬로 변환합니다.

yOut = squareform(ZIn,'tovector')squareformZIn을 행렬로 취급하도록 강제하고 ZIn을 벡터로 변환합니다. ZIn이 스칼라(1×1)인 경우, ZIn은 0이어야 합니다.

위에 열거한 두 구문은 입력 인수가 스칼라일 때 유용합니다. 'tomatrix' 또는 'tovector'를 지정하지 않을 경우 디폴트 값은 'tomatrix'입니다.

예제

모두 축소

관측값 쌍 간의 유클리드 거리를 계산하고 squareform을 사용하여 거리 벡터를 행렬로 변환합니다.

세 개의 관측값과 두 개의 변수를 갖는 행렬을 생성합니다.

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

유클리드 거리를 계산합니다.

D = pdist(X)
D = 1×3

    0.2954    1.0670    0.9448

쌍별(Pairwise) 거리가 인덱스 (2,1), (3,1), (3,2)에 배열됩니다. squareform을 사용하여 관측값 i와 관측값 j 간의 거리를 쉽게 확인할 수 있습니다.

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)는 관측값 ij 간의 쌍별 거리를 나타냅니다. 예를 들어, 관측값 2와 관측값 3 간의 거리를 구할 수 있습니다.

Z(2,3)
ans = 0.9448

Zsquareform 함수에 전달하여 pdist 함수의 출력값을 재현합니다.

y = squareform(Z)
y = 1×3

    0.2954    1.0670    0.9448

squareform의 출력값 ypdist의 출력값 D는 같습니다.

입력 인수

모두 축소

입력 거리 벡터로, 길이가 m(m–1)/2인 숫자형 또는 논리형 벡터로 지정됩니다. 여기서 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)로 정의됩니다.

pdist 함수를 사용하여 yIn을 만들 수 있습니다. m은 pdist의 입력 데이터에 있는 관측값 개수입니다.

데이터형: single | double | logical

입력 거리 행렬로, 숫자형 또는 논리형 행렬로 지정됩니다. ZIn은 대각선을 따라 0이 있는 m×m 대칭 행렬이며, 여기서 m은 관측값 개수입니다. ZIn(i,j)i번째 관측값과 j번째 관측값 간의 거리를 나타냅니다.

데이터형: single | double | logical

출력 인수

모두 축소

거리 벡터로, 길이가 m(m–1)/2인 숫자형 또는 논리형 벡터로 반환됩니다. 여기서 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)로 정의됩니다.

yOutpdist 함수의 출력값과 형식이 같습니다.

거리 행렬로, 숫자형 또는 논리형 행렬로 반환됩니다. ZOut은 대각선을 따라 0이 있는 m×m 대칭 행렬이며, 여기서 m은 관측값 개수입니다. ZOut(i,j)i번째 관측값과 j번째 관측값 간의 거리를 나타냅니다.

  • squareform을 사용하여 상관 계수 행렬(corrcoef)과 같은 거리 벡터 또는 거리 행렬과 유사한 벡터 또는 행렬의 형식을 지정할 수 있습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목