squareform

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

Синтаксис

ZOut = squareform(yIn)
yOut = squareform(ZIn)
ZOut = squareform(yIn,'tomatrix')
yOut = squareform(ZIn,'tovector')

Описание

пример

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). Попарное расстояние между i th и 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) обозначает расстояние между i th и 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) обозначает расстояние между i th и j th наблюдения.

Советы

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

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

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

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