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,但这需要大量工作,而且速度可能较慢。