getHistory

Получите историю ветвей поддерживаемых треков

Описание

пример

history = getHistory(branchHistoryMgr) возвращает таблицу, содержащую историю ветви дорожки, поддерживаемую входом trackBranchHistory Системные object™, branchHistoryMgr.

history = getHistory(branchHistoryMgr,format) возвращает историю ветвей в заданном формате: 'table' или 'matrix'.

Примеры

свернуть все

Примените результаты алгоритма назначения к ориентированному на дорожки, мультигипотезному отслеживанию (MHT) менеджеру истории ветвей. Просмотрите получившиеся ветви дорожки (гипотезы).

Создайте менеджера истории ветвей MHT, который является trackBranchHistory Системные object™. Установите объект, чтобы сохранить историю четырех датчиков и двух сканов.

branchHistoryMgr = trackBranchHistory('MaxNumSensors',4,'MaxNumHistoryScans',2)
branchHistoryMgr = 
  trackBranchHistory with properties:

          MaxNumSensors: 4
     MaxNumHistoryScans: 2
           MaxNumTracks: 200
    MaxNumTrackBranches: 3

Обновление истории ветвей. Поскольку первое обновление не имеет предыдущих ветвей, диспетчер истории ветвей содержит только неназначенные обнаружения.

emptyAssignment = zeros(0,2,'uint32');
emptyUnassignment = zeros(0,1,'uint32');
unassignedDetections = uint32([1;2;3]);
originatingSensor = [1 1 2];
history = branchHistoryMgr(emptyAssignment,emptyUnassignment, ...
    unassignedDetections,originatingSensor);

Просмотрите текущую историю ветвей при помощи getHistory функция. Каждое обнаружение присваивается отдельной дорожке.

getHistory(branchHistoryMgr)
ans=3×5 table
    TrackID    ParentID    BranchID                     Scan2                                       Scan1                  
                                       Sensor1    Sensor2    Sensor3    Sensor4    Sensor1    Sensor2    Sensor3    Sensor4
    _______    ________    ________    ________________________________________    ________________________________________

       1          0           1           1          0          0          0          0          0          0          0   
       2          0           2           2          0          0          0          0          0          0          0   
       3          0           3           0          3          0          0          0          0          0          0   

Задайте несколько назначений ветвей и несколько неназначенных ветвей дорожки и обнаружений.

  • Присвойте ветвь 1 обнаружениям 1 и 2.

  • Присвойте ветвь 2 обнаружениям 1 и 2.

  • Рассмотрите неназначенные ветви 1 и 3 трека.

  • Учитывайте обнаружения 1, 2 и 3 неназначенные.

assignments = uint32([1 1; 1 2; 2 1; 2 2]);
unassignedTracks = uint32([1;3]);
unassignedDetections = uint32([1;2;3]);

Обновите диспетчер истории ветвей с помощью назначений и неназначенных треков и обнаружений.

history = branchHistoryMgr(assignments,unassignedTracks, ...
    unassignedDetections,originatingSensor);

Просмотр обновленной истории ветвей.

getHistory(branchHistoryMgr)
ans=9×5 table
    TrackID    ParentID    BranchID                     Scan2                                       Scan1                  
                                       Sensor1    Sensor2    Sensor3    Sensor4    Sensor1    Sensor2    Sensor3    Sensor4
    _______    ________    ________    ________________________________________    ________________________________________

       1          1            1          0          0          0          0          1          0          0          0   
       3          3            3          0          0          0          0          0          3          0          0   
       4          0            4          1          0          0          0          0          0          0          0   
       5          0            5          2          0          0          0          0          0          0          0   
       6          0            6          0          3          0          0          0          0          0          0   
       1          1            7          1          0          0          0          1          0          0          0   
       1          1            8          2          0          0          0          1          0          0          0   
       2          2            9          1          0          0          0          2          0          0          0   
       2          2           10          2          0          0          0          2          0          0          0   

Смотрите историю ветвей.

  • Последний скан - Скан 2. Предыдущий скан - Скан 1, которое было Скан 2 в предыдущем обновлении назначения. История сместила один скан вправо.

  • Ветви 1 и 3 являются ветвями для неназначенных путей.

  • Ветвь 2 больше не входит в историю, поскольку она не считается неназначенной. Его назначение обнаружениям 1 и 2 создавало ветви 9 и 10.

  • Ветви 4-6 являются ветвями, созданными для неназначенных обнаружений.

  • Ветви 7-10 являются ветвями, созданными для заданий пути.

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

свернуть все

Входной менеджер истории ветвей, заданный как trackBranchHistory Системный объект.

Формат истории выходных ветвей, заданный как один из следующих:

  • 'table' (по умолчанию) - Возвращает историю ветвей в таблицу.

  • 'matrix' - Возвращает историю ветвей в матрице. Этот вывод эквивалентен выходу, возвращаемому при вызове trackBranchHistory Системный объект.

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

свернуть все

История ветви, возвращенная как таблица целых чисел или как матрица целых чисел.

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

  • TrackID - идентификатор дорожки, которая связана с ветвью. Ветви дорожки, которые, как принято, произошли от одной и той же цели, имеют один и тот же идентификатор дорожки. Если ветвь происходит от неназначенного обнаружения, эта ветвь получает новый идентификатор дорожки.

  • ParentID - идентификатор родительской ветви, то есть ветви, от которой произошла текущая ветвь. Ветви, созданные из одного родительского элемента, имеют одинаковые ParentID. A ParentID 0 указывает на новую дорожку. Эти дорожки создаются из гипотез, соответствующих неназначенным обнаружениям.

  • BranchID - Уникальный идентификатор ветви пути. Каждая ветвь, созданная в результате неназначенного обнаружения или назначения, получает новый идентификатор ветви.

Остальные D × S столбцы содержат идентификаторы обнаружений, назначенных каждой ветви. Ветвь может быть назначена, самое большее, одному обнаружению на скан и на датчик. Таблица показывает организацию этих столбцов с выборочными обнаружениями. N - количество сканов. Значение 0 означает, что датчик на этом скане не имеет назначенного ему обнаружения.

Сканы NСкан N - 1. . .Скан N - D
Датчик - 1Датчик - 2. . .Датчик - S Датчик - 1Датчик - 2. . .Датчик - S . . .Датчик - 1Датчик - 2. . .Датчик - S

1

0

...

0

1

2

...

0

...

0

0

...

0

См. также

Введенный в R2018b
Для просмотра документации необходимо авторизоваться на сайте