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). Парное расстояние между iи jПервые наблюдения находятся в ZOut(i,j) и yIn((i–1)*(m–i/2)+j–i) для i j.

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) для i j.

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

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

Матрица входного расстояния, заданная как числовая или логическая матрица. ZIn является m -by 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 -by - m в порядке столбца. Парное расстояние между наблюдениями i и j в yOut((i–1)*(m–i/2)+j–i) для i j.

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

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

Совет

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

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

.

См. также

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