首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特征SVD双铸

特征SVD双铸
EN

Stack Overflow用户
提问于 2017-06-06 10:02:49
回答 1查看 150关注 0票数 0

我在试着用EIGEN语言。特别是我用的是SVD。

在计算奇异值之后,我需要执行以下操作:

代码语言:javascript
复制
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)中?

EN

回答 1

Stack Overflow用户

发布于 2017-06-06 10:44:59

注意,svd.singularValues().row(1)不是标量,而是1x1矩阵,这就是为什么您的代码不编译。解决方案:

代码语言:javascript
复制
svd.singularValues()/svd.singularValues()(1)

还请注意,在C/C++中,特征矩阵和向量通常都是基于0的索引,因此,如果您想用最大的奇异值进行规范化,您应该这样做:

代码语言:javascript
复制
svd.singularValues()/svd.singularValues()(0)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44387023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档