从单个数组的不同段中初始化eigen ::向量
Initialize an Eigen::Vector from different segments of a single array
我必须通过选择其一些成员来从数组中构造Eigen::Vector
。我知道我可以使用Eigen::Map
在不复制的情况下初始化Eigen::Vector
。
假设我有一个N
整数数组,我需要通过选择具有从j
到j+m
到CC_7到CC_7的数组值来制作Eigen::VectorXi
,而无需复制值。
在特征或armadillo中,这是否有可能?
示例:
int array[]= {1,2,3,4,5,6,7,8,9,10};
//I need to initialize a Eigen::VectorXi with values having 0 to 0+3
// indices and 5 to 5+3 indices. ie with elements {1,2,3,4,6,7,8,9}
使用armadillo,您可以将高级构造函数用于向量,然后使用join_cols((/join_rows((函数:
int array[] = {1,2,3,4,5,6,7,8,9,10};
Col<int> A( &array[0], 4, false );
Col<int> B( &array[5], 4, false );
Col<int> C = join_cols(A,B);
col&lt;>是用于列矢量的Armadillo模板类。如果需要行向量,将Col<int>
更改为Row<int>
。
您可以使用COMMMA初始器加入两个使用Map
生成的向量,每个向量:
int array[] = {1,2,3,4,5,6,7,8,9,10};
int m = 4;
int j = 0, k = 5;
VectorXi w(2*m);
w << Map<VectorXi>(&array[j], m) , Map<VectorXi>(&array[k], m);
请注意,w
必须以其大小初始化以防止断言失败。
相关文章:
- 是否可以初始化不可复制类型的成员变量(或基类)
- C++使用整数的压缩数组初始化对象
- C++初始化基类
- 多成员Constexpr结构初始化
- 复制列表初始化的隐式转换的等级是多少
- 内联映射初始化的动态atexit析构函数崩溃
- 如何在C++中初始化嵌套类中的2个memeber
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 没有用于初始化C++中的变量模板的匹配构造函数
- 在未初始化映射的情况下,将值插入到映射的映射中
- C++成员初始化
- 初始化 std::数组 of Eigen::Map
- 特征::向量;在函数中使用 Eigen::Matrix3f 的值初始化向量,大于 4 个条目
- 从单个数组的不同段中初始化eigen ::向量
- 如何使用另一个"Eigen::VectorXd"向量中的值初始化"Eigen::VectorXd",基于索引的"向量<int>"
- 如何按块初始化"Eigen" - 矩阵?
- 逗号分隔的初始化(如Eigen中的初始化)如何可能在C++中实现
- 用std::vector初始化Eigen::vector
- 我如何初始化一个SparseVector在Eigen
- 在 EIGEN 中单独声明和初始化映射类型矩阵