使用matlab在txt文本中提取十六进制数,读取规定数据之后的某些数,里面有大量的数据。

例如下面的数据,提取FF AA B1 XX后面紧接着的两个十六进制数字5C 70。只要碰见FF AA B1 XX就提取紧接着的下面两个数据。数据很多。
麻烦高手指点,附程序,谢谢!

假设文本文件Zone1.txt内容如下(2行,其实随便几行都无所谓)
02 06 2E FF AA B1 09 37 84 60 FF AA FF AA B1 2E 33 86 FF AA B1 FF AA B1 7B 2A 8D FF AA
B1 7B 3F 24 FF AA B1 8C 47 84 60 FF AA B1 38 0C 86 FF FF AA B1 B2 B3 B4 FF AA B1 11 22

输入如下命令
f=fopen('Zone1.txt');
A=char(fread(f,'char'))';%A即是文本文件中的内容
fclose(f);
B=regexp(A,'(?<=FF\s+AA\s+B1\s+\w\w\s+)\w\w\s+\w\w','match')%B即提取了所要的内容
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-15
有空格: 将*.TXT文件存入当前工作区,直接用a=load(
相似回答