Постоянная угловая скорость вращения прямоугольная целевая модель измерения
возвращает ожидаемые измерения в текущие прямоугольные состояния и обнаружения.measurements = ctrectmeas(states,detections)
Загрузите обнаружения и истину, сгенерированную от прямоугольной цели.
load('rectangularTargetDetections.mat','detections','truthState');
Сгенерируйте ожидаемые обнаружения от прямоугольных и фактических обнаружений цели состояния с помощью ctrectmeas.
tgtState = [3;48;0;60;0;5;1.9]; zExp = ctrectmeas(tgtState,detections);
Настройте среду визуализации с помощью theaterPlot.
theaterP = theaterPlot; stateP = trackPlotter(theaterP,'DisplayName','State','MarkerFaceColor','g'); truthP = trackPlotter(theaterP,'DisplayName','Truth','MarkerFaceColor', 'b'); detP = detectionPlotter(theaterP,'DisplayName','Detections','MarkerFaceColor','r'); expDetP = detectionPlotter(theaterP,'DisplayName','Expected Detections','MarkerFaceColor','y'); l = legend(theaterP.Parent); l.AutoUpdate = 'on'; hold on; assignP = plot(theaterP.Parent,NaN,NaN,'-.','DisplayName','Association');
Постройте фактические и ожидаемые обнаружения.
inDets = [detections{:}];
inMeas = horzcat(inDets.Measurement);
detP.plotDetection(inMeas');
zExpPlot = reshape(zExp,3,[]);
expDetP.plotDetection(zExpPlot');Постройте графики ассоциации.
zLines = nan(2,numel(detections)*3); zLines(1,1:3:end) = zExpPlot(1,:); zLines(2,1:3:end) = zExpPlot(2,:); zLines(1,2:3:end) = inMeas(1,:); zLines(2,2:3:end) = inMeas(2,:); assignP.XData = zLines(1,:); assignP.YData = zLines(2,:);
Постройте истину и состояние.
truthPos = [truthState(1:2);0]; truthDims = struct('Length',truthState(6),... 'Width',truthState(7),... 'Height', 0,... 'OriginOffset', [0 0 0]); truthOrient = quaternion([truthState(4) 0 0],'eulerd', 'ZYX','frame'); truthP.plotTrack(truthPos',truthDims,truthOrient); statePos = [tgtState(1:2);0]; stateDims = struct('Length',tgtState(6),... 'Width',tgtState(7),... 'Height',0,... 'OriginOffset', [0 0 0]); stateOrient = quaternion([tgtState(4) 0 0],'eulerd', 'ZYX','frame'); stateP.plotTrack(statePos', stateDims, stateOrient);

states — Текущие прямоугольные состоянияТекущие прямоугольные состояния в виде 7 N матрицей с действительным знаком, где N является количеством состояний. Семимерное прямоугольное целевое состояние задано как [x; y; s; θ; ω; L; W:
| Переменная | Значение | Модуль |
| x | Положение прямоугольника сосредотачивается в направлении x | m |
| y | Положение прямоугольника сосредотачивается в направлении y | m |
| s | Скорость в направляющемся направлении | m/s |
| θ | Угол ориентации прямоугольника относительно направления x | градус |
| ω | Угловая скорость вращения | degree/s |
| L | Длина прямоугольника | m |
| W | Ширина прямоугольника | m |

Пример: [1;2;2;30;1;4.7;1.8]
Типы данных: single | double
detections — Обнаружения целиobjectDetection объектыОбнаружения цели в виде 1 M массивом ячеек objectDetection объекты. MeasurementParameters свойство (который задает преобразование от пространства состояний до пробела измерения) для каждого объекта должно быть тем же самым для всех обнаружений в массиве ячеек.
measurements — Ожидаемые измеренияОжидаемые измерения, возвращенные как P-by-N-by-M массив с действительным знаком. P является размерностью каждого измерения, заданного в detections введите, N является количеством состояний, заданных в states введите, и M является количеством обнаружений, заданных в detections входной параметр.
trackerPHD | gmphd | ctrect | ctrectmeasjac | ctrectjac | initctrectgmphd | ctrectcorners
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.