我收到了多个需要处理的非常大的文件。我做过一些类似的东西,但这些和我做过的任何东西都不一样。看起来有人把一堆不同长度的excel文件复制粘贴在一起,然后转换成文本文件。
我需要把它们分开。更有趣的是,除了第2-6列之外,我还需要每组的最后3列。创建这些文件的人和任何人都会在中间添加和减去列,从而更改最后3列的位置。我会手动做这件事,但这是大量的数据和格式,我会收到更多。
我需要按磁道号解析所有数据,并保存到单独的新文件中。Matlab几乎在我做的每件事上都会出错。我想我可以用if语句询问列的数量来解决列的问题,但我还没有做到,因为我还不知道如何分离数据。啊。
不太确定如何制作一张漂亮的桌子,但这基本上就是它的样子。。
注意:
- 不同长度的行
- 不同列数
- 并且附加列在最后3列之前生成(我需要最后3列(
- 数字和字母的混合(有点(
- 哦是的。。。列也没有标题
Track 252556
前进-163.71 04/15/18 13:33:22 37.1112-76.27-27.03-2.14-5.12-163.71
进步-163.71 05/15 13:33:2 37.1350-76.27 27.02-2.56-8.11-163.71
进行-163.71 07/15/18 16:33:22 371588-76.26-27.01-2.98-11.10-163.71]
推进-163.73 04/15 13:33:22 37.1826-76.26 27.01-3.40-14.09-163.73
轨道266565
前进-163.76 04/15/18 13:33:24 37.3730-76.24-26.92 14.70-6.77-38.02-163.76
推进-163.75 04/15/1813:33:23 37.3968-76.23-26.92 16.10-7.19-41.01-163.75
前进-163.77 04/15/18:13:33:24 374206-76.23-26.91 17.50-7.61-44.00-163.77
进行-163.77 05/15:14 13:33:44 37.4444-76.23 26.90 18.90-8.03-46.99-163.77
轨迹65229
前进-163.79 04/15/18 13:33:25 37.4682-76.22-26.89 20.30 D-8.45-49.98-163.79
推进-163.79 05/15/18 13-33:25 374920-76.22 26-.89 21.70 D-8.87-52.98-163.759
前进-163.81 04/15/1813:33:55 37.5158-76.22 26.87 23.10 D-9.29-55.97-163.81
进行-163.81 05/15/1813:32:2537.5396-76.21-26.87 24.50 D-9.71-58.96-163.81
轨迹65229
前进-163.83 04/15/18 13:33:25 37.5634-76.21--26.86-10.13-61.95-163.83
推进-163.85 04/15/1813:33:26 37.5872-76.21-26.84-10.56-64.94-163.85
进-163.88 04/15/18:13:33:26 37.6110-76.21-26-.83-10.98-67.93-163.88
提前-163.89 04/15:2637.6348-76.20-26.81-11.40-70.92-163.89
预付款-163.91 04/15/18 13:33:26 37.6586-76.20 260.80-11.82-73.91-163.91
预支款-163.92 04/15/18:13:33:26 376824-76.27-26.77-12.24-76.90-163.92
您需要逐行读取文件,然后处理每一行以获得您想要的信息:suedo代码:
fid = fopen ( filename, 'r' );
if fid ~= -1
while ~feof(fid)
line = fgetl ( fid );
% split the line using textscan or strread - use the column delimiter and store the appropriate columns
info = textscan ( line, '%s' )
last3 = info{1}(end-2:end);
% store somewhere....
end
end