我有4个文本文件,行数和列数相同。我使用5阶RK方案对一组时间相关变量进行建模,这些文件的每一行输入代表来自唯一数据集的一些参数。这些参数是解决模型中方程所必需的。我想循环遍历四个输入文件的每一行输入,获取这些参数的值,执行RK方法,并将因变量值及时存储为输出文件中的单行输出。
我使用的单个文件:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <valarray>
#include <vector>
#include<string>
#include<sstream>
using namespace std;
typedef valarray<double> val;
//void read_X(ifstream &infile, val(&x)); void read_I(val(&I));
struct Inf {
int i, j;
double Iij;
double ton, toff; };
istream& operator >> (istream &is, Inf &s) {
string line;
getline(is, line);
istringstream ss(line);
ss >> s.i >> s.j >> s.Iij >> s.ton >> s.toff ;
return is;
}
vector<Inf> Xdata;
val Iij(20);
int main() {
Iij = 0;
ifstream infile("Data.txt");
Inf I;
if(infile.is_open()){
while (infile >> I) Xdata.push_back(I);
}
else cerr << "The file cannot be opened" << endl;
for(Inf s : Xdata) cout << s.ton << " " << s.Iij << endl;
infile.close();
return 0;
}
我的data.txt文件包含类似的内容;
1 1 0.1204 0.0 1.170
1 2 0.142 1.0 1.170
1 3 0.523 5.0 5.170
1 4 0.200 2.0 4.170
2 1 0.400 3.0 4.170
2 2 0.120 0.0 1.170
2 3 0.120 0.0 1.170
我有办法为多个文件执行此操作吗?我想到了一个结构矢量,但我不确定它会有多实用。我将非常感谢能得到的所有帮助。
PS:我已经为单个案例提供了RK方法的工作代码,我只需要遍历几个数据集。
谢谢!