egen3 rowwise().maxCoeff()的使用

1、安装eigen3 

2、引用头文件

3、代码测试


    MatrixXf aaa(2, 4);
    aaa << 1, 2, 3, 4,  
        5, 6, 7, 8;  
    Vector2f  diff(10, 20);
    aaa.colwise() += diff;

    std::cout << "new_aaa : " << aaa << endl;   
 

 

全部代码:

 


int main()
{
    MatrixXf mat(2, 4);
    mat << -1, 2, 6, 19,   //19+6+2-1= 26
        3, 1, 7, -2;   // 3+1+7-2=9
    VectorXf maxVal = mat.rowwise().maxCoeff();  // 计算矩阵钟每行的最大值  返回的是一个行最大值组成的一个向量
    VectorXf minVal = mat.rowwise().minCoeff();    // 同上
     

    std::cout << "Maxima at positions " << endl;
   // std::cout << maxIndex << std::endl;
    std::cout << "maxVal  : " << maxVal << endl;
    std::cout << "minVal : " << minVal << endl;

    VectorXf  difference = maxVal - minVal;   //  对应的行  maxVal[i]-minVal[i],返回的也是一个向量
    std::cout << "difference : " << difference << endl;
    Vector2f mm(-1,-2);
    std::cout << "difference.norm() : " << difference.norm() << endl;  // 计算模 
    std::cout << "mm.norm() : " << mm.norm() << endl;

    //  计算每行的和 返回的是一个行向量 
    Vector2f source_mea=mat.rowwise().sum();
    std::cout << "source_mea.norm() : " << source_mea<< endl;


    cout << "矩阵的列数     " << mat.cols() << endl;  // 4 

    //  计算没行的平均值
    Vector2f  mean=source_mea / 4;
    std::cout << "mean    : " << mean << endl;



    MatrixXf vertices_source(2, 4);
    vertices_source << -1, 2, 6, 19,   //19+6+2-1= 26
        3, 1, 7, -2;   // 3+1+7-2=9

    MatrixXf vertices_target(2, 4);

    vertices_target << 0, 2, 6, 19,   //19+6+2-1= 26
        3, 1, 7, 2;   // 3+1+7-2=9

    //最大 最小 
   Vector2f source_scale = vertices_source.rowwise().maxCoeff() - vertices_source.rowwise().minCoeff();
   Vector2f target_scale = vertices_target.rowwise().maxCoeff() - vertices_target.rowwise().minCoeff();


    double scale = std::max(source_scale.norm(), target_scale.norm());
    std::cout << "scale =      " << scale << std::endl;
    vertices_source /= scale;
    vertices_target /= scale;

    std::cout << "vertices_source : " << vertices_source << endl;
    std::cout << "vertices_target : " << vertices_target << endl;
    /// De-mean
    Vector2f source_mean, target_mean;

    source_mean = vertices_source.rowwise().sum() / double(vertices_source.cols());
    target_mean = vertices_target.rowwise().sum() / double(vertices_target.cols());

    std::cout << "source_mean : " << source_mean << endl;
    std::cout << "target_mean : " << target_mean << endl;

    vertices_source.colwise() += source_mean;
    vertices_target.colwise() += target_mean;

    std::cout << "vertices_source : " << vertices_source << endl;
    std::cout << "vertices_target : " << vertices_target << endl;



    std::cout << "aaa =========================================== : " << endl;

    MatrixXf aaa(2, 4);
    aaa << 1, 2, 3, 4,   //
        5, 6, 7, 8;   // 
    Vector2f  diff(10, 20);
    aaa.colwise() += diff;

    std::cout << "new_aaa : " << aaa << endl;

    system("pause");
    return 0;

}

 先更新到此,后续碰到再说。。。。。。

相关推荐

  1. 使用Eigen3计算旋转平移缩放矩阵

    2023-12-08 08:36:05       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-08 08:36:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-08 08:36:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-08 08:36:05       82 阅读
  4. Python语言-面向对象

    2023-12-08 08:36:05       91 阅读

热门阅读

  1. Spring Kafka常用配置详解

    2023-12-08 08:36:05       51 阅读
  2. c++通过serial库进行上下位机通信

    2023-12-08 08:36:05       57 阅读
  3. 怎样学习AI编程?

    2023-12-08 08:36:05       60 阅读
  4. [rk3308]源码编译

    2023-12-08 08:36:05       56 阅读
  5. 使用python脚本轻松实现ssh免密登陆配置

    2023-12-08 08:36:05       65 阅读
  6. nginx 一键切换停机维护页面 —— 筑梦之路

    2023-12-08 08:36:05       52 阅读