turningdist

Вычислите превращение расстояния между polyshape объекты

Описание

td = turningdist(poly1,poly2) возвращает массив превращения расстояний между соответствующими парами элемента двух polyshape массивы с совместимыми размерами. Поворачивающееся расстояние между двумя polyshape объекты являются мерой как тесно их соответствие форм, независимо от вращения или масштабирования. Поворачивающееся расстояние близко к 0 указывает на близкое соответствие. Чем больше значение, тем больше две формы отличаются.

TD(i,j) является поворачивающимся расстоянием между i th polyshape в poly1 и j th polyshape в poly2.

пример

td = turningdist(polyvec) возвращает матрицу превращения расстояний между парами элемента вектора из polyshape объекты.

Примеры

свернуть все

Создайте и постройте два квадрата различных размеров и местоположения, представленные как polyshape объекты poly1 и poly2.

poly1 = nsidedpoly(4,'SideLength',1);
poly2 = nsidedpoly(4,'SideLength',3,'Center',[3 3]);
plot(poly1)
hold on 
plot(poly2)
axis equal
hold off

Figure contains an axes. The axes contains 2 objects of type polygon.

Поскольку эти два квадрата имеют ту же форму несмотря на свое масштабирование, их превращение расстояния 0.

td = turningdist(poly1,poly2)
td = 0

Создайте и постройте треть polyshape, и сравните его превращение расстояния до poly1. Поскольку их формы имеют больше различий, чем poly1 и poly2, поворачивающееся расстояние больше.

poly3 = nsidedpoly(20,'Center',[3 3]);
plot(poly1)
hold on
plot(poly3)
axis equal
hold off

Figure contains an axes. The axes contains 2 objects of type polygon.

td = turningdist(poly1,poly3)
td = 0.4443

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

свернуть все

Первый вход polyshapeВ виде скаляра, вектора, матрицы или многомерного массива.

Второй вход polyshapeВ виде скаляра, вектора, матрицы или многомерного массива.

polyshape вектор.

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

свернуть все

Превращение расстояния, возвращенного как скаляр, вектор, матрица или многомерный массив, элементы которого больше или равны 0.

  • Если вы вводите два polyshape аргументы, затем у них должны быть совместимые размеры. Например, если два входа polyshape векторы имеют различные длины M и N, затем у них должны быть различные ориентации (нужно быть вектором-строкой, и нужно быть вектор-столбцом). td затем M-by-N или N-by-M в зависимости от ориентации каждого входного вектора. Для получения дополнительной информации о совместимых размерах массивов смотрите Совместимые Размеры Массивов для Основных Операций.

  • Если вы вводите один polyshape вектор с длиной N, затем td N-by-N.

Типы данных: double

Ссылки

[1] Arkin, E.M., Жуйте, L.P., Huttenlocher, D.P., Kedem, K., и Митчелл, J.S.B. "Эффективно вычислимая метрика для сравнения многоугольных форм". Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту. Издание 13, Номер 3, 1991, стр 209-16. doi:10.1109/34.75509.

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

Введенный в R2018a