我对此感到疯狂:我刚刚以这种方式使用了SVD:
Eigen::BDCSVD<Eigen::MatrixXcd> svd(A, Eigen::ComputeThinU | Eigen::ComputeThinV);
const Eigen::MatrixXcd U = svd.matrixU();
const Eigen::MatrixXcd V = svd.matrixV();
const Eigen::VectorXd S = svd.singularValues();
在我需要阅读像这里的一些值之后:
valsingn = S/S(0);
或在这里:
tmp_var = U(i, j);
现在我想删除U V
和S
的副本以避免浪费内存(我的矩阵很大262144x576
),但我不知道如何访问来自U
的{{1}}。
只写svd.matrixU()
不起作用......
所以我的问题是,如何在不复制它们的情况下访问svd.matrixU(i, j)
?