标签:150 ate Eigen 文件 矩阵 读写 ios 75 out
Eigen库学习笔记(十一)读写矩阵文件
由于调试时看不到矩阵的尺寸和数值,所以可以通过保存文件的形式查看矩阵。
1、写txt文件
代码:
void test_save_txt(Eigen::MatrixXf mat, string filename)
{
ofstream outfile(filename, ios::trunc);
outfile << mat;
outfile.close();
}
测试用例
Eigen::MatrixXf mat(24, 3);
mat <<
50, 25, 25,
100, 50, 50,
150, 75, 75,
75, 50, 50,
150, 100, 100,
225, 150, 150,
100, 75, 50,
200, 150, 100,
300, 225, 150,
100, 75, 75,
200, 150, 150,
300, 225, 225,
425, 50, 75,
850, 100, 150,
1275, 150, 225,
475, 75, 125,
950, 150, 250,
1425, 225, 375,
400, 75, 75,
800, 150, 150,
1200, 225, 225,
425, 75, 100,
850, 150, 200,
1275, 225, 300;
test_save_txt(mat, "data.txt");
输出到文件中的内容:
50 25 25
100 50 50
150 75 75
75 50 50
150 100 100
225 150 150
100 75 50
200 150 100
300 225 150
100 75 75
200 150 150
300 225 225
425 50 75
850 100 150
1275 150 225
475 75 125
950 150 250
1425 225 375
400 75 75
800 150 150
1200 225 225
425 75 100
850 150 200
1275 225 300
2、读写的一些选项
ofstream流,
- 以ios::app打开(或者“ios::app|ios::out”),如果没有文件,那么生成空文件;如果有文件,那么在文件尾追加。
- 以ios::app|ios::in打开,不管有没有文件,都是失败。
- 以ios::ate打开(或者”ios::ate|ios::out”),如果没有文件,那么生成空文件;如果有文件,那么清空该文件
- 以ios::ate|ios::in打开,如果没有文件,那么打开失败;如果有文件,那么定位到文件尾,并可以写文件,但是不能读文件
ifstream流,
- 以ios::app打开(“ios::app|ios::out”),不管有没有文件,打开都是失败。
- 以ios::ate打开(“ios::ate|ios::out”),如果没有文件,打开失败
- 如果有文件,打开成功,并定位到文件尾,但是不能写文件
fstream流,默认是ios::in,所以如果没有文件,ios::app和ios::ate都是失败,
- 以ios::app|ios::out,如果没有文件则创建文件,如果有文件,则在文件尾追加
- 以ios::ate|ios::out打开,如果没有文件则创建文件,如果有,则清空文件。
- 以ios::ate|ios::out|ios::in打开,如果没有文件,则打开失败,有文件则定位到文件尾
可见:ios::app不能用来打开输入流,即不能和ios::in相配合
而ios::ate可以和ios::in配合,此时定位到文件尾;如果没有ios::in相配合而只是同ios::out配合,那么将清空原文件
(ios::ate|ios::in–>在原文件尾追加内容;ios::ate—>清空原文件,ios::out是默认必带的,可加上也可不加,对程序无影响)
标签:150,ate,Eigen,文件,矩阵,读写,ios,75,out 来源: https://blog.csdn.net/juluwangriyue/article/details/122283958
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。