【发布时间】:2015-08-21 16:06:26
【问题描述】:
有没有办法在 MATLAB 中执行条件文本导入?例如使用此格式的制表符分隔的 .txt 文件:
Type A B C D E
A 5000 2 5 16 19
A 5000 3 4 5 4
A 5000 4 1 4 5
B 500 19 8 2 7
B 500 18 9 8 1
B 500 2 9 13 2
B 100 3 10 15 9
B 5000 4 15 14 10
有没有办法只导入 A 列包含 '5000' 的那些行?
这优先于导入整个 .txt 文件并随后分离数据,因为实际上,我的文本文件相当大(每个约 200MB) - 但如果有办法快速做到这一点,那也将是一个合适的解决方案。
或者,是否有一种方法(类似于 R)可以使用 .txt 文件中包含的标头导入和处理数据?例如导入 'Type' 'A' 'B' 和 'D' 而忽略了上例中的 'C' 和 'E'。如果输入文件格式灵活,有时添加的附加列意味着它们的相对位置发生变化,则需要这样做。
【问题讨论】:
-
如果您不告诉它有关文件结构/格式的更多详细信息,则没有内置方法可以执行这些操作。 Matlab 例程不像 R 中的例程那样自动化。您询问的两件事都可以通过
textscan直接完成,但您需要对您的文件做出一些假设和/或提供有关其构成的额外知识(例如,标题的长度、列的顺序)。否则,您需要通过创建自己的更高级别的例程来添加智能。