我之前问过一个问题,但是duffymo说不清楚,所以我打算在这里再发一次。我正在使用Jama api进行SVD计算。我非常了解jama和SVD。如果您的列多于行,则Jama不起作用。我有这种情况。我该怎么办??有什么帮助吗?我也不能转置矩阵,因为它会产生错误的结果。谢谢。
附言:我在jama的帮助下计算LSI。我喜欢列(Docs)和行(Term)
发布于 2010-01-31 12:17:38
如果我理解正确的话,您正在尝试计算一个不是方阵的矩阵的奇异值分解,而您有一个只对方阵有效的JAMA库?如果我没理解错的话,那么你的问题的答案是显而易见的:获取一个库,它可以计算非方阵的奇异值分解。如果我没记错,Numerical Recipes包含这样的算法,我希望你可以用Google找到很多其他的资源。
发布于 2010-02-28 01:31:15
为什么不使用转置?如果X= USV',则X‘= VS'U’。对吗?
转置你的矩阵。得到U,S和V。把所有东西调换回来。
发布于 2010-04-29 15:02:10
由于您正在进行LSI,因此可以使用SVDLIBJ,它是SVDLIBC的Java等价物,它是可免费获得的伸缩性最好的SVD实现之一。S-Space包已经设置了command-line tool for SVDLIBJ。此外,如果命令行更适合您的需要,您可以使用他们的Matrix库并避免使用命令行。
https://stackoverflow.com/questions/2169287
复制相似问题