首先,由于我缺乏简洁的词汇,标题非常糟糕。我会尝试描述我正在做的事情然后再问我的问题。
背景资讯
假设我有两个大小为n
x m
的矩阵,其中n
是实验观察向量的数量,每个长度为m
(时间序列结束)收集的观察结果)。其中一个矩阵是原始矩阵,称为S
,另一个是S
的重建版本,称为Y
。
让我们假设Y
正确重建S
。然而,由于重建算法的局限性,Y
无法确定S
中矢量的真实幅度,也无法保证为这些矢量提供正确的符号(矢量可能会被翻转) )。此外,Y
中观察向量的顺序可能与S
中相应向量的原始顺序不匹配。
我的问题
是否有算法或技术来生成新的矩阵,该矩阵是Y
到S
的'重新对齐',以便在Y
和S
归一化时,算法可以(1)找到Y
中与S
中的向量匹配的向量,并恢复向量的原始排序,(2)同样匹配向量的符号?
与往常一样,我非常感谢所有帮助。谢谢!
答案 0 :(得分:2)
如何简单地计算两个矩阵中每个向量的规范化形式并进行比较?这应该为每个矩阵中的每个向量提供精确的一对一匹配。
矢量的正规形式符合:
v_norm = v / ||v||
其中||v||
是向量的欧几里德范数。对于v=(v1, v2, ..., vn)
,我们有||v|| = sqrt(v1^2 + ... + vn^2)
。
从那里你可以重建它们的顺序,并返回每个向量的原始长度和方向(向量或其相反)。
从现在开始算法应该相当简单,只需决定你的实现。 此方法应具有二次复杂度。根据评论,您确实可以在此算法上实现O(nlogn)
复杂性。如果你需要更好的东西,线性复杂性 - 具体来说,你需要一个更复杂的算法,我现在想不到。