我在Mathematica中有两个列表:
list1 = {{a1, b1, c1}, ... , {an, bn, cn}}
并且
list2 = {{d1, e1, f1}, ... , {dn, en, fn}}
这些列表包含数值结果,每个列表大约包含50000个三元组。每个三元组表示两个坐标和这些坐标上某个属性的数值。每个列表的长度不同,而且坐标范围也不完全相同。我的意图是将每个列表中第三个属性的数值进行相关性分析,因此我需要扫描这些列表并确定坐标匹配的属性。我的输出结果将类似于:
list3 = {{ci, fj}, ... , {cl, fm}}
在哪里
{ai, bi}, ..., {al, bl}
将会(大致)相等,分别为
{dj, ej}, ..., {dm, em}
“粗略地”指的是一旦四舍五入到某个期望的精度,坐标将会匹配:
list1(2) = Round[{#[[1]], #[[2]], #[[3]]}, {1000, 500, 0.1}] & /@ list1(2)
经过这个过程后,我将拥有两个包含一些匹配坐标的列表。我的问题是如何以最佳方式执行识别并挑选属性对的操作?
一个6元素列表的示例如下:
list1 = {{-1.16371*10^6, 548315., 14903.}, {-1.16371*10^6, 548322., 14903.9},
{-1.16371*10^6, 548330., 14904.2}, {-1.16371*10^6, 548337., 14904.8},
{-1.16371*10^6, 548345., 14905.5}, {-1.16371*10^6, 548352., 14911.5}}
list1
和list2
的小数字示例以及预期输出list3
?同时,请定义“大致”。 - user616736