t******0 发帖数: 629 | 1 小弟新手,以前经常用到matlab做一点小计算。
比如用某仿真软件得出一个数据file(一般就是一个二维数组),然后load到matlab里
一顿乱算,或者出图,或者save到一个TXT中。
感觉用matlab干这种事情非常方便。
我不太熟悉C++,但是转行以后会经常用到,请问C++对于这类数据处理是怎么用的?
比如从二维数组中选出一列,我只会用for循环。。。 | t******0 发帖数: 629 | 2 明明好多人看了此贴,却没有回复。。。说明此帖问的问题够傻。。。
看来我还是老老实实问个具体问题吧:
比如,我刚刚拿到一个TXT文件,里面密密麻麻的二维数据,数之间用空格分开,但我
不知到此文件是几行几列。
请问如何将此TXT文件读入C++程序,然后存入一个二维数组中?
BTW,已知TXT里文件的尺寸(n x m)然后 for loop那种我会。现在只是想像matlab那
样,自动地读入数组。 | l********a 发帖数: 1154 | 3 几个解决办法
1.matlab写出txt的时候,开头第一行写行列个数,从第二行开始写数据.
c++读的时候先读第一行,得到row,col数,然后动态分配内存
2.先扫一遍文件,得到行,列数,然后动态分配,扫第二遍读数据(文件大的话扫2次很累)
3.应该是最简单的,用vector < vector >,等价于每行都是个变长数组,整个
矩阵是变长数组的变长数组.写代码最方便,边读取边添加,而且也可用[i][j]直接访问
元素 | y****d 发帖数: 291 | 4 vector在动态push的时候以2^n来resize,如果文件太大,建议先用list读进去,然后再
考虑其他的事情。
【在 l********a 的大作中提到】 : 几个解决办法 : 1.matlab写出txt的时候,开头第一行写行列个数,从第二行开始写数据. : c++读的时候先读第一行,得到row,col数,然后动态分配内存 : 2.先扫一遍文件,得到行,列数,然后动态分配,扫第二遍读数据(文件大的话扫2次很累) : 3.应该是最简单的,用vector < vector >,等价于每行都是个变长数组,整个 : 矩阵是变长数组的变长数组.写代码最方便,边读取边添加,而且也可用[i][j]直接访问 : 元素
| c***r 发帖数: 1570 | 5 try while loop .... . :) | c******s 发帖数: 61 | |
|