相关疑难解决方法(0)

使用boost.serialization序列化Eigen的矩阵

我正在尝试序列化Eigen的矩阵.这样我就可以序列化一个更复杂的对象.我使用Matrix作为基类,并在派生类中包含序列化.我很困惑如何处理Matrix.data(),它返回一个c风格的数组(如果我是正确的).这是我的尝试:

#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>

template < class TEigenMatrix>
class VariableType : public TEigenMatrix {
private:
  friend class boost::serialization::access;
  template<class Archive>
  void serialize(Archive & ar, const unsigned int version)
  {
      ar & this.data();
  }
public:
};
Run Code Online (Sandbox Code Playgroud)

我想用它作为"包装器":

VariableType<Matrix<double,3,1>> serializableVector;
Run Code Online (Sandbox Code Playgroud)

代替

Matrix<double,3,1> vector;
Run Code Online (Sandbox Code Playgroud)

derived-class boost-serialization eigen

5
推荐指数
2
解决办法
2473
查看次数

如何使用Boost:序列化来保存Eigen :: Matrix

您好我有一个代码实现libeigen2来计算特征向量.现在我想使用boost :: serialization来保存稍后检索的信息.从示例教程中我得出以下代码!

class RandomNode {
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
   ar & is_leaf_;
   ar & depth_;
   ar & num_classes_;
   ar & num_features_;
   // Split node members
   ar & random_feature_indices_;
   ar & random_feature_weights_;
   ar & threshold_;
   ar & leftChild_;
   ar & rightChild_;

 }
bool is_leaf_;
int depth_;
int num_classes_;
int num_features_;

// Split node members
VectorXi random_feature_indices_;
VectorXd random_feature_weights_;
double threshold_;
RandomNode* leftChild_;
RandomNode* rightChild_;
 // Methods and …
Run Code Online (Sandbox Code Playgroud)

boost-serialization eigen

4
推荐指数
1
解决办法
2389
查看次数

标签 统计

boost-serialization ×2

eigen ×2

derived-class ×1