C++ Eigen中norm、normalize、normalized的区别

文章介绍了Eigen库中向量的欧几里得范数(norm)计算,包括二范数和矩阵的弗罗贝尼乌斯范数。同时讲解了向量的单位化(normalize)方法,以及它对向量值的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

norm 取模长(二范数)

向量取模
∥x∥2=∑i=1Nxi2 \|\mathbf{x}\|_2=\sqrt{\sum_{i=1}^Nx_i^2} x2=i=1Nxi2
矩阵弗罗贝尼乌斯范数(Frobenius Norm)
∥A∥F≡∑i=1m∑j=1n∣aij∣2 \|\mathrm{A}\|_F\equiv\sqrt{\sum_{i=1}^m\sum_{j=1}^n\left|a_{ij}\right|^2} AFi=1mj=1naij2

normalize 单位化——修改原向量 返回void

normalized 单位化——不修改原向量 返回同类型

Eigen::Vector2d  Va(3, 4);
Eigen::Vector2d  Vb;

cout << Va.norm() << endl; // 5 

Va.normalize(); // Va 被单位化了
cout << "Va " << Va.transpose() << endl; // 0.6 0.8

Va << 3, 4;
Vb = Va.normalized(); // Va没有被改变, Vb为单位化的Va
cout << "Va " << Va.transpose() << endl; // 3 4 
cout << "Vb " << Vb.transpose() << endl; // 0.6 0.8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值