c - 一次一行从 .txt 文件读取到数组(Matlab 或 C)。 "Insufficient memory"使用 'A=load()' 一次加载整个文件。

标签 c arrays matlab

我有一个包含 1000 行和 100000 列的 .txt 文件。一个 10GB 的文本文件,包含我需要分析的模拟结果(实数)。

我的数据格式为:[0.5 0.3 0.45 .. ; 0.4 0.22 0.21587 ..; 0.1359 1.054 1.1 ...]
(用空格和线条分隔)

如果我尝试使用 A=load('Data.txt') 将整个文件一次加载(在 Matlab 中)到矩阵中,我会收到一条错误消息:“内存不足”,其中我认为意味着 - RAM(对吗?)。

我希望一次只从文件中读取一行到一维数组中。我怎么做? 我已经尝试过不同版本的 A=load('Data.txt')(1,:)A=load('Data.txt'(1,:)) 等等

C 代码的答案也将受到赞赏。谢谢。

最佳答案

查看此answer 。如果您的文件那么大,您不应该尝试一次加载全部文件。你应该逐行阅读它。如果这仍然不起作用,您应该看看 csvread功能。

编辑: 还有这个link可能会很有帮助

第二次编辑: 尝试Matfile io

关于c - 一次一行从 .txt 文件读取到数组(Matlab 或 C)。 "Insufficient memory"使用 'A=load()' 一次加载整个文件。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17175697/

相关文章:

c - 常量和字符数组的范围

c - 管道在c中是如何工作的?

c++ - C 和 C++ 中的 1LL 或 2LL 是什么?

javascript - 将数组的每个元素解析为整数

Javascript for...in 语句在循环数组时出错

matlab - 相机标定的疑惑

将 2 的补码转换为整数并计算 rms 值

php - preg_replace/e 修饰符被弃用,使用数组作为模式和替换

matlab - AlexNet 层提取了哪些特征?

c++ - 如果输入图像矩阵实际上是复数类型,MATLAB imresize() 会做什么?