exponenta event banner

squareform

Формат матрицы расстояний

Описание

пример

ZOut = squareform(yIn) новообращенные yIn, попарный вектор расстояния длиной m (m-1 )/2 для m наблюдений, вZOut, m-на-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 на 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 на 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