2014-09-22 54 views
1

我有很大的txt文件(〜25MB)。它不能在Excel中正确打开,并且无法导入它。将大文本数据导入并保存为MATLAB格式

使用下面的命令我可以读取里面有什么...但我不能将它保存为一个matlab文件与其他数据一起使用。

我想:

fid = fopen('file.txt') 
while~feof(fid) 
tline = fgets(fid); 
disp(tline); 
end 

我都尝试fgets()fgetl()。它读取整个文件。但不会将信息存储在工作区中。

+0

您知道fgets只是读取一行吗?所以Tline将只包含** last **行读取(通常是空的)。 – bdecaf 2014-09-22 13:39:43

+0

是的,我知道...这就是问题....我没有使用matlab处理数据...然后,我寻求帮助!感谢您的评论 – 2014-09-23 14:45:23

+0

可以寻求帮助。我只是在*你的*片段中告诉你,该文件的内容是**不存储在一个变量中。因此它将不可用。 – bdecaf 2014-09-24 09:52:22

回答

1

如果在运行该代码后变量tline不存在于matlab工作区中,则可能是在函数中而不是在脚本中运行它。此外,你需要保存在每次读入某种以便它不会由您在读取下一行覆盖的阵列线。即

function foobar(foo,bar) 
fid=fopen('file.txt') 
n = 0; 
while~feof(fid) 
    tline=fgets(fid); 
    disp(tline); 
    n = n + 1; 
    data{n} = tline; 
end 

如果您在调用它函数,注释掉函数行将导致变量在工作区中保留。

或者,您可以添加一行代码以将所需的变量保存到mat文件中,然后再打开它。

function foobar(foo,bar) 
fid=fopen('file.txt') 
n = 0; 
while~feof(fid) 
    tline=fgets(fid); 
    disp(tline); 
    n = n + 1; 
    data{n} = tline; 
end 
fclose(fid); 
save('filename.mat','data'); 

,然后从工作区运行

load('filename.mat'); 

注:数据可能并不需要成为一个细胞。它取决于文件中的数据类型

+0

这只保存文件的最后一行! – 2014-09-22 13:44:58

+0

我会编辑我的答案,给我一分钟 – Trogdor 2014-09-22 13:45:32

+0

它根本没有工作......它保存了一个合适大小的矩阵,但它是完全空的...... – 2014-09-29 13:23:43

相关问题