clusterTrackBranches

Кластер, ориентированный на дорожку на историю мультигипотезы

Описание

пример

[clusters,incompatibleBranches] = clusterTrackBranches(branchHistory) вычисляет кластеры и матрицу несовместимости для набора ветвей.

Ветви i, j и k принадлежат тому же кластеру, если ветви i и j попарно-несовместимы и ветви j и k, попарно-несовместимы. Две ветви попарно-несовместимы, если они совместно используют ID дорожки (первый столбец branchHistory) или если они совместно используют обнаружения, которые падают в их логических элементах во время количества недавних сканов, как задано глубиной истории.

[clusters,incompatibleBranches] = clusterTrackBranches(branchHistory,'OutputForm',out) возвращает кластеры в формате, заданном out.

Примеры

свернуть все

Создайте матрицу истории ветви для 12 ветвей. В данном примере матрица истории ветви имеет 11 столбцов, которые представляют историю 2 датчиков с глубиной истории 4.

branchHistory = uint32([     
    4     9     9     0     0     1     0     0     0     0     0
    5    10    10     0     0     0     2     0     0     0     0
    6    11    11     0     0     3     0     0     0     0     0
    1    12    12     0     0     1     0     1     0     0     0
    1    13    13     0     0     0     2     1     0     0     0
    1    14    14     0     0     1     2     1     0     0     0
    2    15    15     0     0     3     0     3     0     0     0
    3    16    16     0     0     0     4     0     4     0     0
    7     0    17     1     0     0     0     0     0     0     0
    1     5    18     1     0     0     0     0     2     0     0
    1     5    19     0     2     0     0     0     2     0     0
    1     5    20     1     2     0     0     0     2     0     0]);

Получите список кластеров и список несовместимых ветвей. clusters матрица имеет три столбца, поэтому существует три кластера.

[clusters,incompBranches] = clusterTrackBranches(branchHistory);
size(clusters)
ans = 1×2

    12     3

Покажите несовместимые ветви графиком. Числовые идентификаторы ветви находятся в третьем столбце branchHistory. Чтобы отобразить идентификаторы ветвей по графику, преобразуйте идентификаторы в векторы символов. Вы видите три отличных кластера.

branchIDs = cellstr(num2str(branchHistory(:,3)));
g = graph(incompBranches,branchIDs,'omitselfloops');
plot(g)

Figure contains an axes object. The axes object contains an object of type graphplot.

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

свернуть все

История ветви в виде матрицы целых чисел. Каждая строка branchHistory представляет уникальную ветвь дорожки. branchHistory должен иметь 3 + (D ×S) столбцы, где D является количеством обеспеченных сканов (глубина истории), и S является максимальным количеством обеспеченных датчиков. Для получения дополнительной информации смотрите history выход trackBranchHistory системный объект.

Выведите форму возвращенного clustersВ виде 'logical', 'vector', или 'cell'.

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

свернуть все

Кластеры, возвращенные как одно из следующих. Формат clusters задан out.

  • M-by-P логическая матрица. M является количеством ветвей (строки) в branchHistory и P является количеством кластеров. (i, j) элементом является true если ветвь j содержится в кластерном i. Значение P меньше чем или равно M.

  • Вектор из длины M, где i-th элемент дает индекс кластера, который содержит ветвь i.

  • Массив ячеек c, где c{j} содержит идентификаторы всех ветвей в кластерном j.

Типы данных: логический

Несовместимые ветви, возвращенные как M-by-M симметричная логическая матрица. (i, j) элементом является true если ветви i и j попарно-несовместимы.

Типы данных: логический

Ссылки

[1] Вертманн, Джон Р. "Постепенное Описание В вычислительном отношении Эффективной Версии Нескольких Отслеживание Гипотезы". В Продолжениях Издания 1698 SPIE, Сигнала и Обработки Маленьких Целей. 1992, стр 288–300. doi: 10.1117/12.139379.

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

Введенный в R2018b