概要
因为工作碰到了要读取一个比较大的txt文本的情况,文本文件有1.9G大小。直接读取电脑挂掉,用load因为最后有某行数据不同也挂掉,研究后还是要用textscan读取。
流程
filename = ’ .TXT’; % 写入你的文件地址
%打开文件
fileID = fopen(filename, ‘r’);
frewind(fileID);%如果因为内部有某行不同导致读取了前面部分,后面要分段继续读就把这个去掉,这个是把指向光标移动到文件开头的。
C = textscan(fileID, ‘%f%f:%f:%f:%f:%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f’, ‘delimiter’, ‘\t’,‘CollectOutput’,true);
%%f%f:%f:%f:%f:%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f这部分写你每行的文件的格式,‘delimiter’, '\t’表示分隔符是tab,‘CollectOutput’,true表示将每行连接读取
% 关闭文件
fclose(fileID);
A=C{:};%把元胞数据转为矩阵
技术细节
需要清楚每行的格式才能用这个方式,不然格式不对读出来就会不对