特征3/C++:矩阵Xd将一行与另一行相乘
Eigen3/C++: MatrixXd multiply one row with another
使用Eigen3/C++库,给定一个MatrixXd
/ x0 ... y0
| x1 ... y1 |
M = | ... ... ... |
| |
xN ... yN /
获得修改版本的禁食方法是什么,如下所示?
/ x0 * y0 ... y0
| x1 * y1 ... y1 |
M' = | ... ... ... |
| |
xN * yN ... yN /
也就是说,一列(带有 x-s 的列)被自身替换乘以另一列(带有 y-s 的列)。
你的意思是如何按系数分配-乘以第一个和最后一个列向量吗? 有很多方法可以做到这一点,但最简单/最快的可能是
Eigen::MatrixXd M2 = M;
M2.leftCols<1>().array() *= M2.rightCols<1>().array();
另一种方法是使用给定数量的行/列构造一个未初始化的矩阵,然后
像Eigen::MatrixXd M2{ M.rows(), M.cols() };
M2.rightCols( M.cols() - 1 ) = M.rightCols( M.cols() - 1 );
M2.leftCols<1>() = M.leftCols<1>().cwiseProduct( M.rightCols<1>() );
我不知道哪个更快(但你喜欢的分析器有)。
对于将来的问题,这里是官方的特征快速参考;)
相关文章:
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 从C++dll访问C#中的一行主要参数
- 在C++中,我如何接受不同于同一行的用户输入
- 如何从一行中读取特定数量的字符?(C++)
- 读取最后一行代码算法 - c++ 时出现问题
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 有没有办法在一行中填充矢量图
- 需要将一行代码从C++ Qt翻译成PyQt
- 为什么如果我添加这一行,我的程序会不断询问值
- 如何使代码打印文本文件中的第一行?
- 如何在C++中以这种方式返回一行文本?
- 如何使用运算符在同一行中多次调用函数
- 如何格式化我的文本文件以使其不会一遍又一遍地重复同一行?
- 而(!inputfile.eof())只读取第一行?
- 这段代码的最后一行在做什么?
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- C++找出覆盖同一行的数组
- 如何让字符数组在一行而不是多行中打印出来?