导入大型矩阵:全部导入还是按列导入? - MATLAB

时间:2013-06-12 19:42:49

标签: performance matlab import

一般编程问题,但Matlab可能有特定的考虑因素。

我将导入非常大的数据文件。将整个文件导入内存然后将其划分为子矩阵,或者只是将每n列导入新矩阵,是否更好的实践/更快/更有效?

我的猜测是将它全部加载到缓存然后处理它会更快,但这只是一个没有受过教育的猜测。

1 个答案:

答案 0 :(得分:1)

根据我的经验,最好的方法是使用csvread解析它一次(使用dlmread,它使用文本扫描 - 所以时间损失不重要)。当然,这是因为一个非常大的文件不大于你拥有的可用内存量。 如果一个非常大的文件大于RAM(我只需要解析一个31GB的文件),那么我会使用fopen,逐行读取(或者你喜欢的块或块)并写下这些可写的mat文件。 通过这种方式,您可以在理论上编写受文件系统限制的大文件。