eigen 列拼接_eigen Dense矩阵拼接
时间: 2023-07-01 21:11:39 浏览: 181
在Eigen中,可以使用block()函数和comma initializer(逗号初始化器)来实现Dense矩阵的拼接。
具体来说,可以使用block()函数来选取Dense矩阵的某些块,然后使用逗号初始化器将这些块拼接在一起。例如,假设有两个3x3的Dense矩阵A和B,想要将它们按列拼接成一个3x6的矩阵C,可以使用如下代码:
```
#include <Eigen/Dense>
#include <iostream>
int main()
{
Eigen::Matrix3d A, B;
A << 1, 2, 3, 4, 5, 6, 7, 8, 9;
B << 10, 11, 12, 13, 14, 15, 16, 17, 18;
Eigen::MatrixXd C(3, 6);
C << A.block(0, 0, 3, 3), B.block(0, 0, 3, 3);
std::cout << C << std::endl;
return 0;
}
```
在上面的代码中,A和B分别表示两个3x3的Dense矩阵,C表示拼接后的3x6的矩阵。在C的赋值语句中,首先选取A和B的左上角3x3的块,然后使用逗号初始化器将它们拼接在一起,赋值给C矩阵。
需要注意的是,Eigen中的block()函数用法有些类似于数组的切片操作,第一个参数表示选取的起始行,第二个参数表示选取的起始列,第三个参数表示选取的行数,第四个参数表示选取的列数。在上面的例子中,A.block(0, 0, 3, 3)表示选取A矩阵从第0行第0列开始的3行3列的块。同样,B.block(0, 0, 3, 3)表示选取B矩阵从第0行第0列开始的3行3列的块。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)