mapLayer позволяет применять пользовательские преобразования по элементам при настройке и получении данных на карте. Для преобразования данных, установленных или полученных с карты, укажите дескрипторы функций для GetTransfomFcn и SetTransformFcn свойства. В этом примере показано, как реализовать вероятностный уровень карты логарифмических шансов путем создания таблицы поиска для значений вероятностей и логарифмических шансов. Функции преобразования используют эти таблицы подстановки для преобразования между этими значениями при установке или получении данных.
Создание таблиц подстановки
Создайте полную таблицу поиска значений, которые сопоставляют значения вероятности минимальному и максимальному пределам int16 значения.
Создание массива int16 значения из intmin кому intmax. Определите пределы вероятности.
exampleHelperProbToLogodds и examplerHelperLogoddsToProb функции скрыты между логарифмическими коэффициентами и значениями вероятности. Используйте вспомогательные функции, чтобы получить пределы логарифмических шансов и создать массив для поиска значений логарифмических шансов. Создайте интерполированную сетку для всей таблицы подстановки.
Задание дескрипторов функций преобразования
В обработчиках функции преобразования используются примеры вспомогательных устройств, которые определяют способ преобразования между целочисленными значениями логарифмических шансов и значениями вероятности с примененным пределом насыщения. Пределы насыщения вероятности: [0.001 .999] как было указано ранее. Это поведение аналогично occupancyMap объект.
Создать слой карты
Создайте объект уровня карты занятости из матрицы значений вероятности. Укажите функции преобразования get и set.
Обратите внимание, что при создании карты значение по умолчанию равно 0,001, а не 0. Это различие связано с SetTransformFcn функция была применена к значению по умолчанию 0 при создании объекта, которое насыщает значение 0,001.
Получение и установка данных карты
Данные карты соответствуют матрице, заданной при создании.
extData = 10×10
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000
Задайте конкретные расположения карт для следующих значений:
Для первого местоположения вероятность привязана к пределам насыщения.
Второе местоположение возвращает значение, наиболее близкое к значению вероятности в таблице поиска.
Сгенерированный уровень карты теперь может быть использован для обновления карты вероятности занятия, которые сохранены как int16 значения. Сведения об объединении этой карты с другими слоями или типами карт см. в разделе multiLayerMap объект.