主要内容

setmapdata.

分配数据到地图层

描述

setMapData (地图mapdata.使用与地图层数据维匹配的矩阵覆盖地图层中的所有值,map.datasize.

setMapData (地图XYmapdata.指定给定的值数组XY-世界坐标中的位置。的mapdata.输入必须是X-by-1-by -数据师大批。数据师是地图数据的维度,map.DataSize(3:结束).地图边界外的位置将被忽略。

setMapData (地图XYmapdata.“本地”)指定本地坐标中的位置。

setMapData (地图IJ.mapdata.“网格”)指定给定的值数组IJ.-在网格坐标中的位置。每一行的IJ.指网格细胞指数我[j]

inbounds.= setMapData (___还返回指示相应的输入位置是否符合逻辑值的向量XYIJ.使用前面的语法是有效的。

setMapData (地图左下方mapdata.指定一个值矩阵mapdata.对于地图层的子区域,地图.该子区域从左下角开始XY-安置左下方并根据大小更新子区域mapdata.

setMapData (地图左下方mapdata.“本地”)在局部坐标中指定子区域的左下角。

例子

setMapData (地图左上方mapdata.“网格”)以网格坐标指定子区域的左上角。中的值更新了子区域mapdata.

例子

全部收缩

创建一个地图层,该层存储每个网格位置的两个值XY速度。

创建一个-经过-n矩阵的值。第三维的第一个元素是dx第二个是dy作为速度

dXY =重塑(1∶10,20);dXY (:: 2) = dXY;

从矩阵中创建一个地图层。指定分辨率和层名。

vLayer = mapLayer(依据'解析度',1,“LayerName”'dxy');

将所有的地图数据以矩阵的形式输出。通过创建包含最小值和最大值的数组来获取速度值的xy-locationXY-世界限制,并转移到网格中心位置。的y-location在转换矩阵到世界坐标时被翻转。可视化对应于网格中心位置的速度箭袋函数。

v = getmapdata(vlayer);r = 1 /(2 * vlayer.resolution);xlim = vlayer.xworldlimits;ylim = vlayer.yworldlimits;XLOC =(XLIM(1)+ R):R * 2:(XLIM(2)-R);Yloc =(ylim(2)-r): -  r * 2 :( ylim(1)+ r);箭袋(xLoc yLoc, v (:,: 1), v (:,: 2))

图包含轴对象。轴对象包含QUIVIVE的对象。

将左下象限设置为新更新值。将值作为矩阵创建,并在地图坐标中指定左下角(0,0)setData.函数。

updateValues = Repmat(Reshape([ -  50,100],[1 1 2]),5,10);SetMapData(VLayer,[0 0],updateValues)v = getMapData(VLayer);箭袋(xLoc yLoc, v (:,: 1), v (:,: 2))

图包含轴对象。轴对象包含QUIVIVE的对象。

使用网格坐标为左上角象限设置新值。对于地图,左上角的网格位置是(1,1)。

setMapData (vLayer [1], updateValues,“网格”) v = getMapData(vLayer);箭袋(xLoc yLoc, v (:,: 1), v (:,: 2))

图包含轴对象。轴对象包含QUIVIVE的对象。

mapLayer对象使您能够在设置和获取映射中的数据时应用自定义元素转换。要转换从映射中设置或获取的数据,请指定函数句柄getTransfomfcn.SetTransformFcn特性。此示例显示如何通过为概率和日志odds值创建查找表来实现log-odds probiulity映射层。变换函数使用这些查找表在设置或获取数据时在这些值之间转换。

创建查找表

生成一个完整的查找值,该值将概率值映射到最小和最大限制int16值。

创建一个数组int16价值来自intminintmax.定义概率限制。

inttype =“int16”;Intlinspace = Intmin(inttype):Intmax(inttype);numofpoints =长度(Intlinspace);problimits = [0.001 .999];

exampleHelperProbToLogoddsexamplerHelperLogoddsToProb函数隐藏在log-odds和概率值之间。使用帮助程序函数获取Log-odds限制并生成用于查找log-odds值的数组。为整个查找表创建一个内插网格。

logoddslimits = examplehelperprobtogdds([0.001 .999]);logoddslookup = sing(examplehelperlogoddstopbob(linspace(logoddslimits(1),logoddslimits(2),numofpoints)))));Interplable = GriddedInterpolant(LogoDDSLookup,Single(Intlinspace),'最近');

指定转换函数句柄

transform函数利用示例助手来定义如何在具有应用饱和限制的对数概率整数值和概率值之间进行转换。概率饱和极限为[0.001 .999]正如前面指定。这种行为类似于occupancyMap对象。

getxformfcn = @(obj,logodds,varargin)...exampleHelperIntLogoddsToProb (logodds logOddsLookup (:), intLinSpace);setXformFcn = @ (obj,概率,变长度输入宗量)...examplehelperprobtointlogodds(prov,Interplate,logoddslookup(:),Intlinspace,problimits);

创建映射层

从概率值的矩阵生成占用映射层对象。指定Get和Set Transform函数。

占领王= Maplayer(Repmat(0.5,10,10),...“LayerName”'占用'...“GetTransformFcn”getXformFcn,...'settransformfcn',setxformfcn);

请注意,当您创建地图时,默认值为0.001而不是0.此差异是因为SetTransformFcn创建对象时,函数已应用于默认值0,使值达到0.001。

DISP(占领王子,uparaultvalue)
0.0010.

获取和设置地图数据

地图数据与创建时设置的矩阵相匹配。

extdata = getmapdata(占领者)
extData =10×100.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.50000.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

将特定的地图位置设置为以下值:

  • 在概率饱和极限之外。

  • 比查找表的分辨率更高的精度。

setMapData(occupancyLayer,[0 0],0.00001)

对于第一位置,概率绑定到饱和限制。

extData = getMapData(occupancyLayer,[0 0])
extdata = 0.0010.

第二个位置返回查找表中最接近概率值的值。

extdata2 = getMapData(占领王,[5 5])
extData2 = 0.2600

生成的地图层现在可以用来更新概率占用的任何地图存储为int16值。若要将此地图与其他图层或地图类型组合,请参阅multiLayerMap对象。

输入参数

全部收缩

映射图层,指定为a马来语对象。

用于设置贴图层的数据值,指定为矩阵。缺省情况下,该函数将该层上的所有数据设置为-经过-N-经过-数据师矩阵。N分别为网格的高度和宽度。数据师是地图数据的维度,: map.DataSize (3)

对于其他语法,映射数据可以指定为具有大小的矩阵N-经过-数据师, 在哪里N是元素的数量XYIJ.,或作为全矩阵的子区域。

网格左上角的位置,指定为双元素矢量,[iCoord jCoord]

数据类型:双倍的

输出矩阵的左下角在世界坐标或局部坐标中的位置,指定为一个二元素向量,[xCoord yCoord].位置是世界或基于语法的本地坐标。

数据类型:双倍的

网格职位,指定为n2的矩阵j科尔斯格式,n是网格职位的数量。

数据类型:双倍的

世界或局部坐标,指定为n2的矩阵xy对,在哪里n是坐标的个数。

数据类型:双倍的

输出参数

全部收缩

有效的地图位置,作为一个返回n列向量的长度是XYIJ..地图限制内部的位置返回值1.地图外部的位置限制返回值0。

扩展功能

C / C ++代码生成
使用MATLAB®Coder™生成C和C ++代码。

在R2021A介绍