MATLAB documentation of SVD表示返回的对角矩阵具有递减顺序的奇异值。有没有办法找出奇异值的自然排序是什么? 我问的原因是因为奇异值对应于与输入矩阵的行相关联的维度。
答案 0 :(得分:4)
不,SVD的定义不会引入排序。如果X
是X = U*S*V'
的SVD,那么将讨论限制为方X
矩阵并采用相同的引用matlab documentation表示法,然后是每permutation matrix {{ {1}},我们可以将有效的SVD形成为P
。使用降序值呈现矩阵X = (U*P)*(P'*S*P)*(V*P)'
只是为了方便:每个排列S
都可以完成同样的工作。
作为旁注:P'*S*P
显示矩阵P*X = P*U*S*V'
的行排列不会更改奇异值X
,这可以被视为独立于S
的任何行(或列)排列。
答案 1 :(得分:3)
我希望在回复之前能够了解这里的问题。例如,我在文件交换上发布的eigenshuffle工具允许您对一系列特征问题的特征值和特征向量进行重新排序,因此它们在序列上最大程度地相互一致。也许你的问题是相似的,因此你可能会认为奇异值是随着一些驱动系统的参数而变化的函数。
但实际上,用于计算SVD的方法不存在奇异值的自然排序。实际上,唯一有意义的排序是出现的顺序 - 降序。奇异值的顺序不依赖于矩阵行的顺序,因为这个问题似乎含糊不清,所以我不确定那里是什么意思。
如果您的需求更加清晰,请随时修改问题。