Matlab 读取包含多行字段的文本文件
我正在尝试读取具有挑战性格式的大文本文件。文件不是由许多字段组成的一长行,而是由多行字段组成的块。此外,报头每隔一段时间重复一次,并且重复的频率不一致。下面是一个示例,其中Matlab 读取包含多行字段的文本文件,matlab,file-io,text-files,Matlab,File Io,Text Files,我正在尝试读取具有挑战性格式的大文本文件。文件不是由许多字段组成的一长行,而是由多行字段组成的块。此外,报头每隔一段时间重复一次,并且重复的频率不一致。下面是一个示例,其中fieldA是第一个字段的标题标签,1A是第一个字段的第一个数据值。值是数字和字符串的混合,但对于给定字段保持一致 fieldA fieldB fieldC fieldD fieldE fieldF fieldG fieldH 1A 1B 1C 1D 1E 1F 1G 1H 2A 2B 2C
fieldA
是第一个字段的标题标签,1A
是第一个字段的第一个数据值。值是数字和字符串的混合,但对于给定字段保持一致
fieldA fieldB fieldC fieldD
fieldE fieldF fieldG fieldH
1A 1B 1C 1D
1E 1F 1G 1H
2A 2B 2C 2D
2E 2F 2G 2H
fieldA fieldB fieldC fieldD
fieldE fieldF fieldG fieldH
3A 3B 3C 3D
3E 3F 3G 3H
我正试图找到一种有效地读取数据并对其进行组织的方法,以便每个字段都是结构/单元格/表格/等中的单个数组。我能想到的最好方法就是逐行进行,知道每个块中有多少行,并在遇到标头时进行检测。yep,我认为你最好的选择是逐行阅读并根据你的标准解析完整的文件。。。然后立即编写一个结构更好的新文件(或者简单地组织您的结构并保存一个
mat
文件),这样就不必再次解析此文件。除非您的文件非常大,否则一次将整个文件读入内存可能是最好的开始选择。类似于fid=fopen(文件名);s=文本扫描(fid、%s、'Delimiter'、'\n')代码>。当然,可以单独调用与每个块的格式相匹配的textscan,但这需要大量工作,而且速度可能较慢。