利用eigen将矩阵各元素取倒数
时间: 2023-09-20 22:07:24 浏览: 259
以下是利用Eigen库将矩阵各元素取倒数的示例代码:
```cpp
#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
int main()
{
MatrixXd mat(2, 2);
mat << 1, 2, 3, 4;
std::cout << "Original matrix:\n" << mat << std::endl;
MatrixXd mat_inv = mat.inverse();
std::cout << "Matrix inverse:\n" << mat_inv << std::endl;
MatrixXd mat_reciprocal = mat.array().inverse();
std::cout << "Matrix reciprocal:\n" << mat_reciprocal << std::endl;
return 0;
}
```
首先,我们创建了一个2x2的矩阵,并将其赋值为:
$$
\begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix}
$$
接下来,我们使用 `mat.inverse()` 函数计算矩阵的逆矩阵,并将其存储在变量 `mat_inv` 中。输出结果如下:
```
Original matrix:
1 2
3 4
Matrix inverse:
-2 1
1.5 -0.5
```
然后,我们使用 `mat.array().inverse()` 函数将矩阵中的每个元素取倒数,并将其存储在变量 `mat_reciprocal` 中。输出结果如下:
```
Matrix reciprocal:
1 -0.5
0.333333 -0.25
```
注意,我们需要使用 `array()` 函数将矩阵转换为数组,才能对其中的每个元素进行逐个操作。最后,我们输出了取倒数后的矩阵。
阅读全文