squareform

Матрица расстояния формата

Описание

пример

ZOut = squareform(yIn) преобразует yIn, попарный вектор расстояния длины m (m –1)/2 для наблюдений m, в ZOut, m-by-m симметрическая матрица с нулями по диагонали.

Попарные расстояния в yIn располагаются в порядке (2,1), (3,1)..., (m, 1), (3,2)..., (m, 2)..., (m, m –1). Попарное расстояние между ith и jнаблюдения th находятся в ZOut(i,j) и yIn((i–1)*(m–i/2)+j–i) для ij.

yOut = squareform(ZIn) преобразует ZIn, квадрат, симметрическая матрица с нулями по диагонали, в yOut, вектор, содержащий ZIn элементы ниже диагонали.

ZOut = squareform(yIn,'tomatrix') силы squareform обрабатывать yIn как вектор и преобразует yIn в матрицу.

yOut = squareform(ZIn,'tovector') силы squareform обрабатывать ZIn как матрица и преобразует ZIn в вектор. Если ZIn скаляр (1 на 1), затем ZIn должен быть нуль.

Предыдущие два синтаксиса полезны, когда входной параметр является скаляром. Если вы не задаете ни один 'tomatrix' или 'tovector', затем значением по умолчанию является 'tomatrix'.

Примеры

свернуть все

Вычислите Евклидово расстояние между парами наблюдений и преобразуйте вектор расстояния в матрицу с помощью squareform.

Создайте матрицу с тремя наблюдениями и двумя переменными.

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

Выходные параметры y от squareform и D от pdist то же самое.

Входные параметры

свернуть все

Введите вектор расстояния, заданный как числовой или логический вектор длины m (m –1)/2, где m является количеством наблюдений.

Попарные расстояния в yIn располагаются в порядке (2,1), (3,1)..., (m, 1), (3,2)..., (m, 2)..., (m, m –1), т.е. нижний левый треугольник m-by-m матрица расстояния в порядке следования столбцов. Попарное расстояние между наблюдениями i и j находится в yIn((i–1)*(m–i/2)+j–i) для ij.

Можно создать yIn при помощи pdist функция. m является количеством наблюдений во входных данных pdist.

Типы данных: single | double | logical

Введите матрицу расстояния, заданную как числовая или логическая матрица. ZIn m-by-m симметрическая матрица с нулями по диагонали, где m является количеством наблюдений. ZIn(i,j) обозначает расстояние между ith и jнаблюдения th.

Типы данных: single | double | logical

Выходные аргументы

свернуть все

Вектор расстояния, возвращенный как числовой или логический вектор длины m (m –1)/2, где m является количеством наблюдений.

Попарные расстояния в yOut располагаются в порядке (2,1), (3,1)..., (m, 1), (3,2)..., (m, 2)..., (m, m –1), т.е. нижний левый треугольник m-by-m матрица расстояния в порядке следования столбцов. Попарное расстояние между наблюдениями i и j находится в yOut((i–1)*(m–i/2)+j–i) для ij.

yOut имеет тот же формат как выход от pdist функция.

Матрица расстояния, возвращенная как числовая или логическая матрица. ZOut m-by-m симметрическая матрица с нулями по диагонали, где m является количеством наблюдений. ZOut(i,j) обозначает расстояние между ith и jнаблюдения th.

Советы

  • Можно использовать squareform отформатировать вектор или матрицу, которая похожа на вектор расстояния или матрицу, такова как матрица коэффициента корреляции (corrcoef).

Расширенные возможности

Смотрите также

Представлено до R2006a