matlab怎么划分网格,matlab画图网格线设置
我有跟踪数据。每个轨迹由一系列坐标(x,y点)组成,每个轨迹由一个唯一的ID标识。
这些轨迹在x-y平面上。我想把整个平面分成大小相等的网格(正方形网格)。这个网格很明显是不可见的,但是用来把轨迹分成子段。当轨迹与网格线相交时,它会被划分为一个新的子轨迹。在
我附上了一个简单的手动图表来阐明我的期望。在
你可以看到轨迹在网格线的交点处是如何分割的,每条线段都有一个新的唯一id。
我在研究Python,想找一些Python实现的链接,建议,算法,甚至一个伪代码。在
如果有什么不清楚的地方,请告诉我。在
更新
为了将平面分成网格,单元索引如下:# findingcell id用于每个坐标
#cellid=(coord/cellSize)。astype(int)
cellid=(coord/0.5)。astype(int)
小区
Out[] : array([[1,1],
[3, 1],
[4, 2],
[4, 4],
[5, 5],
[6, 5]])
#分别获取x单元id和y单元id
x_cellid=cellid[:0]
y_cellid=cellid[:1]
#查找单元格总数
xmax=df.xcoord.max()
xmin=df.xcoord.min()
ymax=df . ycord . max()
ymin=df . ycord . min()
x单元格个数=math.floor((xmax-xmin)/0.5)
ycells的数量=math.floor((ymax-ymin)/0.5)
total _ cells=no _ of _ x cells * no _ of _ y cells
总计_单元格
Out[] : 25
因为这个平面现在被分成25个单元,每个单元都有一个单元。为了找到交点,也许我可以检查轨迹中的下一个坐标。如果像元ID保持不变,则该部分轨迹位于同一像元中,并且与格网没有交集。例如,如果x_cellid[2]大于x_cellid[0],则线段与垂直网格线相交。即便如此,我还是不确定如何找到与网格线的交点,并在交点处划分轨迹,赋予它们新的id。