我有 2 个数据立方体表示为 3D 矩阵。它们都具有相同的尺寸。我们必须进行基于规则的排序。我们的条件是,如果它们的任何子立方体(子立方体必须在位置和方向上完全匹配)匹配至少 p%,我们可以说它们是相似的。现在给定两个包含数据的 3D 矩阵,我们必须编写一个算法来打印给定两个立方体中相似子立方体的数量。
我尝试了蛮力算法,但事实证明它在大型数据集上非常慢。我可以在这里使用任何特定算法或任何技术吗??
提前致谢。
最佳答案
我们可以采用 this question 中的第一个解决方案.构造另一个名为 count
的 3D 矩阵,并用 1 填充其对应于匹配数据的所有边缘单元格。然后,从count(1,1,1)
开始,考虑字典序的单元格,为i设置
使得数据匹配已设置的任何邻居的最小值。如果数据不匹配,则设置 count(i, j, k)
, j,kcount(i, j, k) = 0
。
最后,count
的非零元素包含匹配的立方体,它们的值表示立方体的宽度。
关于algorithm - 将 3D 矩阵中的数据与另一个矩阵聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20579908/