Eigen库保存二进制的向量
时间: 2024-04-20 16:04:17 浏览: 11
在Eigen库中,可以使用`Eigen::MatrixBase::write()`函数将向量以二进制格式写入文件。以下是一个示例代码:
```
#include <iostream>
#include <Eigen/Core>
int main()
{
Eigen::VectorXd v(3);
v << 1.0, 2.0, 3.0;
std::ofstream file("vector.bin", std::ios::out | std::ios::binary);
if (file.is_open())
{
v.write(file);
file.close();
}
return 0;
}
```
在上述代码中,我们定义了一个3维向量`v`,然后将其以二进制格式写入名为`vector.bin`的文件中。
要读取该文件并将向量存储在Eigen对象中,可以使用`Eigen::MatrixBase::read()`函数。以下是一个示例代码:
```
#include <iostream>
#include <Eigen/Core>
int main()
{
Eigen::VectorXd v(3);
std::ifstream file("vector.bin", std::ios::in | std::ios::binary);
if (file.is_open())
{
v.read(file);
file.close();
}
std::cout << "Vector v:\n" << v << std::endl;
return 0;
}
```
在上述代码中,我们首先定义了一个3维向量`v`,然后从名为`vector.bin`的文件中读取二进制数据并将其存储在`v`中。最后,我们输出向量`v`的值。