我在试着用EIGEN语言。特别是我用的是SVD。
在计算奇异值之后,我需要执行以下操作:
svd.singularValues()/svd.singularValues().row(1)它是由标量潜入的向量。
我的问题是:
1)为什么这次手术让我:
main.cpp:149:56: error:不匹配‘运算符/’(操作数类型为‘const SingularValuesType {aka const特征::Matrix}’和‘特征::DenseBase >::ConstRowXpr {又名const特征::块,1,1,false>}’)
2)如何将包含在标准“双”变量中的值复制到svd.singularValues().row(1)中?
发布于 2017-06-06 10:44:59
注意,svd.singularValues().row(1)不是标量,而是1x1矩阵,这就是为什么您的代码不编译。解决方案:
svd.singularValues()/svd.singularValues()(1)还请注意,在C/C++中,特征矩阵和向量通常都是基于0的索引,因此,如果您想用最大的奇异值进行规范化,您应该这样做:
svd.singularValues()/svd.singularValues()(0)https://stackoverflow.com/questions/44387023
复制相似问题