exponenta event banner

clusterTrackBranches

Кластерно-ориентированная история множественных гипотез

Описание

пример

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

Ветви i, j и k принадлежат одному и тому же кластеру, если ветви i и j являются несовместимыми попарно, а ветви j и k являются несовместимыми попарно. Две ветви являются попарно несовместимыми, если они имеют общий идентификатор дорожки (первый столбец 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. The axes contains an object of type graphplot.

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

свернуть все

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

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

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

свернуть все

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

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

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

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

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

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

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

Ссылки

[1] Вертманн, Джон Р. «Пошаговое описание вычислительно эффективной версии отслеживания множественных гипотез». В трудах SPIE том 1698, Сигнал и обработка малых целей. 1992, стр 288–300. дои: 10.1117/12.139379.

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

.
Представлен в R2018b