最近在做一个实时控制的神经网络。我的数据是存在.txt中的,共6个vaiables,7000多组数据,形似下面:
1.02 1.35 2.03 0.32 0.41 1.05
1.35 1.21 1.98 0.41 0.58 1.11
...
0.98 1.12 1.75 0.56 0.87 0.99 //7000多行数据!我用网上搜来的代码来读取这些数据: CFile file("ttp.txt",CFile::modeRead);
char *pBuf;
int iLen=file.GetLength();
int irow=iLen/13;
pBuf =new char[iLen+1];
file.Read(pBuf,iLen);
pBuf[iLen]=0;
file.Close();
cout<<pBuf<<endl;
cout<<irow<<endl;读取成功。不过,却是从中间某行开始的,其前面的数据没有读入!这是怎么回事?另外,因为我这个是实时控制的,所以一个现象就是,每个训练set都是上面数据的第i行为input,第i+1行为target。也就是说,第i行为t时刻的output数据,同时在t+1时刻作为input数据。
我这里有两个模板类:Vector<type>和Matrix<type>。我从txt中读取的数据想直接读入一个Matrix<double>的对象中,该怎么做?高手请入!!
1.02 1.35 2.03 0.32 0.41 1.05
1.35 1.21 1.98 0.41 0.58 1.11
...
0.98 1.12 1.75 0.56 0.87 0.99 //7000多行数据!我用网上搜来的代码来读取这些数据: CFile file("ttp.txt",CFile::modeRead);
char *pBuf;
int iLen=file.GetLength();
int irow=iLen/13;
pBuf =new char[iLen+1];
file.Read(pBuf,iLen);
pBuf[iLen]=0;
file.Close();
cout<<pBuf<<endl;
cout<<irow<<endl;读取成功。不过,却是从中间某行开始的,其前面的数据没有读入!这是怎么回事?另外,因为我这个是实时控制的,所以一个现象就是,每个训练set都是上面数据的第i行为input,第i+1行为target。也就是说,第i行为t时刻的output数据,同时在t+1时刻作为input数据。
我这里有两个模板类:Vector<type>和Matrix<type>。我从txt中读取的数据想直接读入一个Matrix<double>的对象中,该怎么做?高手请入!!
解决方案 »
- 结构体嵌套结构体数组,赋值时出错,大家帮帮忙
- 按钮功能执行总提示“内存不足”
- VC里编译纯C程序怎么会出错啊?
- 如何改变Ctrlist显示字体的大小?
- 请教坐标映射模式的问题!
- 我在一个sdi工程中加入自己写的一个class的头文件,为什么总是出现下面的错误。
- 如何将_variant_t类型的变量转换成CString型变量??
- 不知各位有无遇到过VC70中开发的程序在XP OR WIN 2000 上运行良好,但到了ME,98上就有各种问题,如自画控件会无故增大.不知各位怎样解决的?
- 老问重提,请问如何调用蓝屏,不是自己画的,就像调用一种系统服务一样,可以吗,听说是藏在一个未公开的API中?
- 在vs2005中的MFC应用程序项目中如何添加头文件(如math.h)?
- 非活动窗口不响应别的程序用PostMessage发给它消息?
- VC 界面如何分屏
人家的代码只是一个例子,你不能原封不动抄过来,你必须理解人家的代码并根据自己的需求进行调整
按下面的逻辑重新理清你的思路,再写一下看看吧
CFile的逻辑应该是类似CFile cfile;
cfile.Open(_T("Write_File.dat"), CFile::modeCreate |
CFile::modeReadWrite);
char pbufWrite[100];
memset(pbufWrite, 'a', sizeof(pbufWrite));
cfile.Write(pbufWrite, 100);
cfile.Flush();
cfile.SeekToBegin();
char pbufRead[100];
while (cfile.Read(pbufRead, sizeof(pbufRead)) )
{
cout << pbufRead << endl ;
}
ASSERT(0 == memcmp(pbufWrite, pbufRead, sizeof(pbufWrite)));
file.Read(pBuf,iLen);
你这么读以后怎么分开又是一个问题。
还有按照LZ的方法读出来是string,不可能是double