晚上好
我试图将直方图滤波器定位推广到任意维的离散环境。尽管在这一点上,与numpy合作可能是最好的选择,但我还是要坚持某项任务的某些限制,这本身就让我开始了从二维到更高维度的能力。在
首先,我选择了一个立方环境(每个段的标签从1到27):
debug = [[['1', '2', '3'],
['4', '5', '6'],
['7', '8', '9']],
[['10', '11', '12'],
['13', '14', '15'],
['16', '17', '18']],
[['19', '20', '21'],
['22', '23', '24'],
['25', '26', '27']]]
在柱状图定位过程中,机器人首先移动,然后测量一个有助于收集机器人自身所在位置的信息的输入。在我有限的离散三维立方体环境中,我的机器人可以上/下、左/右移动和前进/后退。每次我需要沿着机器人的运动方向执行更新(即改变驻留在某一段的概率)。在
向前/向后移动意味着改变行{1,10,19},{2,11,20},{3,12,21},。。。以此类推,而向左/向右移动意味着改变{1,2,3},{4,5,6},{7,8,9},。。。最终,上下移动意味着改变{1,4,7},。。。 所以这就是我所处的地方,在相对有限的python基础知识的情况下,我发现自己正在努力从2到3D进行泛化,但是我甚至希望它能适用于更高维的环境。下一步该怎么办?是否有一些奇特的方法来转换给定的列表列表,使前面描述的更新成为一项简单的任务(如果还没有的话)?在
谢谢大家!在
如果有人对我如何在没有numpy和任意维数组的情况下解决它感兴趣,下面是代码:
不过,这是相当快速,肮脏和未经测试。__envdim是一个包含环境维度的列表。比如,我们有一个3x3x3的立方体,那就是[3,3,3]。 __getmoveturns返回所有维度长度的乘积,不包括我移动的维度。在
不要使用列表列表,使用
numpy.ndarray
将使您所需的索引/切片/转换更容易。在相关问题 更多 >
编程相关推荐