VectorXd
- вектор столбца. Если вы действительно хотите вектор строки, вам нужно RowVectorXd
:
#include <iostream>
#include <fstream>
#include <Eigen>
using Eigen::RowVectorXd;
int main()
{
std::ofstream myfile1;
RowVectorXd en(1000);
std::string energyname = "Energies.txt";
myfile1.open(energyname);
for (int i = 0; i < 200; i++)
{
for (int j = 0; j < 1000; j++)
{
en(j) = 10;
}
myfile1 << en << std::endl;
}
}
Если вам действительно нужен вектор столбца, и вы просто хотите напечатать транспонирование этого вектора столбца, вы можете использовать Eigen::IOFormat
для изменения разделителя конца строки с "\n"
на " "
. Это четвертый параметр для IOFormat
, поэтому нам необходимо повторно передать значения по умолчанию для первых 3 параметров.
#include<iostream>
#include<fstream>
#include<Eigen>
using Eigen::VectorXd;
using Eigen::IOFormat;
using Eigen::StreamPrecision;
int main()
{
std::ofstream myfile1;
VectorXd en(1000);
std::string energyname = "Energies.txt";
myfile1.open(energyname);
IOFormat column_transpose_format(StreamPrecision, 0, " ", " ");
for (int i = 0; i < 200; i++)
{
for (int j = 0; j < 1000; j++)
{
en(j) = 10;
}
myfile1 << en.format(column_transpose_format) << std::endl;
}
}
Ни один из них не проверен.