我正在尝试打印具有c++20格式的Eigen::Array或Eigen::Matrix,而不是Eigen::IOFormat。我想用说明符控制矩阵中元素的精度和对齐,例如
#include <Eigen/Core>
#include <format>
#include <iostream>
int main()
{
Eigen::ArrayXXd mat( 3, 4 );
mat.setZero();
std::cout << std::format( "mat={:9.4f}n", mat );
return 0;
}
如何获得以下预期结果?
mat= 0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000
0.0000 0.0000 0.0000 0.0000
您可以查看https://gite.lirmm.fr/rpc/utils/eigen-fmt看看它是否能帮到你。
您基本上需要包含这个头文件,以便使用fmt
库对打印/格式提供特征支持。由于std::format
是基于fmt
的,因此该代码应该是一个良好的开端,以便实现您想要的内容。请注意,您可能需要进行一些调整。