matlab - MATLAB。索引 1 个具有不同长度列和行的文件
问题描述
我收到了多个需要处理的非常大的文件。我做过一些类似的工作,但这些与我所拥有的不同。看起来有人将一堆不同长度的excel文件复制并粘贴在一起并转换为文本文件。
我需要把它们分开。更有趣的部分是除了第 2-6 列之外,我还需要每组的最后 3 列。创建这些文件的任何人和任何人都会在中间添加和减去列,这会更改最后 3 列的位置。我会手动执行此操作,但我会收到更多数据和格式。
我需要按曲目编号解析所有数据并保存到单独的新文件中。Matlab 在我所做的每一件事上都会抛出错误。我想我可以用一个询问列数的 if 语句来解决列问题,但还没有到达那里,因为我还不知道如何将数据分开。啊。
不太确定如何制作一张漂亮的桌子,但这基本上就是它的样子..
注意:
- 不同长度的行。
- 不同的列数
- 并且在最后 3 列之前生成了附加列(我需要最后 3 列)
- 数字和字母的混合(有点)。
- 哦,是的......列也没有标题
跟踪 252556
提前 -163.71 04/15/18 13:33:22 37.1112 -76.27 -27.03 -2.14 -5.12 -163.71
提前 -163.71 04/15/18 13:33:22 37.1350 -76.27 -27.02 -2.516 -81.
提前 -163.71 04/15/18 13:33:22 37.1588 -76.26 -27.01 -2.98 -11.10 -163.71
提前 -163.73 04/15/18 13:33:22 37.1826 -76.26 -27.01 -3.40 -14.09
-163726
提前 -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/18 13:33:24 37.3968 -76.23 -26.92 -7.75 16.10 -1 -6.75
提前 -163.77 04/15/18 13:33:24 37.4206 -76.23 -26.91 17.50 -7.61 -44.00 -163.77
提前 -163.77 04/15/18 13:33:24 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.302 -26.85 - 20. 49.98 -163.79
提前 -163.79 04/15/18 13:33:25 37.4920 -76.22 -26.89 21.70 D -8.87 -52.98 -163.79
提前 -163.81 04/15/18 13:33:25 37.5158 -76.102 -236。 9.29 -55.97 -163.81
前进 -163.81 04/15/18 13:33:25 37.5396 -76.21 -26.87 24.50 D -9.71 -58.96 -163.81
轨道 65229
前进 -163.83 04/15/18 13:33:25 -17. 26.86 -10.13 -61.95 -163.83
提前 -163.85 04/15/18 13: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/18 13:33:26 37.6348 -76.20 -26.81 -11.40 -70.92
-163 163.91 04/15/18 13:33:26 37.6586 -76.20 -26.80 -11.82 -73.91 -163.91
提前 -163.92 04/15/18 13:33:26 37.6824 -76.27 -26.77 -12.22 -76.90 -163。
解决方案
您需要逐行读取文件,然后处理每一行以获得所需的信息: 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
推荐阅读
- qt - QtWidgets 应用程序的虚拟键盘或屏幕键盘?
- flutter - 如何连接两个TextStyle?
- java - RX Java 2 顺序处理合约
- python - Python循环加一个浮点数,结果不对
- python-3.x - 两个字符串不匹配?
- c# - 使用客户端凭据授权模式IdentityServer4时如何获取当前用户
- testing - Katalon中的e2e测试用例可以用Javascript语言编写吗
- c# - 在参数的事件注册中出现错误
- ios - Lottie 动画 'CALayer 位置包含 NaN: [nan nan]' 错误
- python - 获取 IndexError:在 Python 中解析 HTML 时出现列表索引超出范围错误