一般编程问题,但Matlab可能有特定的考虑因素. 我将导入非常大的数据文件.将整个文件导入内存然后将其划分为子矩阵,或者只是将每n列导入新矩阵,是更好的实践/更快/更有效吗? 我的猜
我将导入非常大的数据文件.将整个文件导入内存然后将其划分为子矩阵,或者只是将每n列导入新矩阵,是更好的实践/更快/更有效吗?
我的猜测是将它全部加载到缓存然后处理它会更快,但这只是一个没有受过教育的猜测.
根据我的经验,最好的方法是使用csvread解析它一次(使用dlmread,它使用文本扫描 – 所以时间损失不重要).当然,这是因为一个非常大的文件不大于你拥有的可用内存量. 如果一个非常大的文件大于RAM(我只需要解析一个31GB的文件),那么我会使用fopen,逐行读取(或者你喜欢的块或块)并写下这些可写的mat文件. 通过这种方式,您可以在理论上编写受文件系统限制的大文件.