4

一般编程问题,但可能有针对 Matlab 的特定注意事项。

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

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

4

1 回答 1

1

根据我的经验,最好的方法是使用 csvread 解析一次(它使用 dlmread ,它使用 textscan - 所以时间损失并不显着)。这当然是因为一个非常大的文件不大于您拥有的可用 RAM 量。如果一个非常大的文件比 RAM 大(例如,我只需要解析一个 31GB 的文件),那么我会使用 fopen,逐行读取(或块,任何你喜欢的块)并将这些写入一个可写的 mat 文件。这样,理论上您可以编写受文件系统限制的大文件。

于 2015-10-18T23:24:53.527 回答