拆包合并
功能描述
该工具用于数据的降维,可将数据列表分解后再合并。例如,输入 [[A], [B], [C]],拆包合并后输出 [A, B, C]。

使用场景
通用的数据降维步骤。
输入
列表:待拆包的数据列表,支持的数据类型包括 PoseList、NumberList、StringList、Vector3DList、BoolList、IndexList。
输出
已处理列表:拆包并合并后的列表,与输入的数据列表类型一致。
步骤原理
假设输入数据为n维数据,操作层设置为x(x<n-1)。
拆包过程:先提取第x层列表中的元素,并按照其在其父列表中(x+1层)的索引进行重组(相同索引的元素重组),构成新的n-1维列表。
合并过程:将拆包后得到的多个列表中x层具有相同索引项的元素合并(直接拼接),合并后的结果按原索引顺序排列,构成新的n-1维列表。
当x=n-1时,拆包合并结果就是其本身。
当x>n-1时,将对输入数据进行升维。
参数说明
维度设置
操作层:指定需要进行拆包操作的维度。如果操作层为0,则对列表中的每个基础元素执行操作。
操作层说明如下
对于NumberList、StringList、Vector3DList、BoolList、IndexList 这类数据结构,其操作层介绍如下: [第1层 [第0层 xx,xx,xx...],[第0层 xx,xx,xx...] ]
对于PoseList,其操作层介绍如下: [第1层 [第0层[x,y,z,qx,qy,qz,w]],[第0层[x,y,z,qx,qy,qz,w]] ]
示例
拆包合并工具接收一个三维的输入参数: [[[0,1],[2,3]],[[4,5],[6,7]]]
第0层参数:[0,1] (父列表中的索引0),[2,3](父列表中的索引1),[4,5] (父列表中的索引0),[6,7](父列表中的索引1) 第1层参数:[[0,1],[2,3]],[[4,5],[6,7]]
当操作层为0时,该输入参数被拆解为2个列表: [[0,1],[4,5]]和[[2,3],[6,7]],合并结果为: [[0,1,2,3],[4,5,6,7]]。
当操作层为1时,该输入参数被拆解为2个列表: [[0,1],[2,3]]和[[4,5],[6,7]],合并结果为: [[0,1],[2,3],[4,5],[6,7]]。