gpt4 book ai didi

c++ - 在 Eigen 中按列计算 lpNorm

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:46 24 4
gpt4 key购买 nike

当我尝试调用 lpNorm<1> 时与 colwise()在 Eigen 中我得到错误:

error: 'Eigen::DenseBase > >::ColwiseReturnType' has no member named 'lpNorm'

取而代之的是 norm() 和 squaredNorm() 可以很好地调用它们。

例子

  #include <Eigen/Dense>
#include <iostream>
using namespace std;
using namespace Eigen;
int main()
{
MatrixXf m(2,2), n(2,2);
m << 1,-2,
-3,4;
cout << "m.colwise().squaredNorm() = " << m.colwise().squaredNorm() << endl;
cout << "m.lpNorm<1>() = " << m.lpNorm<1>() << endl;
// cout << "m.colwise().lpNorm<1>() = " << m.colwise().lpNorm<1>() << endl;
}

工作很好给予

m.colwise().squaredNorm() = 10 20
m.lpNorm<1>() = 10

如果我取消注释最后一行,我会得到错误。

有人可以帮忙吗?

最佳答案

在 Eigen <=3.2.9 中没有为 colwise 实现。您有两个选择:

  1. 升级到 Eigen 3.3 (测试版)
  2. 遍历所有列并一一计算 lp 范数。

关于c++ - 在 Eigen 中按列计算 lpNorm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38812776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com