【问题标题】:Matlab reading hex values from text file with non hex values interspersed?Matlab从散布有非十六进制值的文本文件中读取十六进制值?
【发布时间】:2013-06-04 23:37:46
【问题描述】:

我有一个类似于下面粘贴的文本文件。几个十六进制值后跟“xx”,然后是十六进制值。该模式重复〜1M次。我正在寻找一种只读出十六进制值而忽略“xx”值的好方法。 Textscan 看起来很有趣,但不支持十六进制。 fscanf 很棒,但它一碰到文件中的第一个“xx”就会窒息。我写了一个笨拙的脚本,它将所有内容都读取为字符串,省略了“xx”并使用了 dec2hex,但这痛苦很慢(显然)。有什么建议吗?

7F
55
8A
9B
6E
XX
XX
XX
XX
FF
DE
BE
EF
XX
XX
XX
04
88
.
.
.

【问题讨论】:

    标签: matlab file-io


    【解决方案1】:

    这个解决方案在我的笔记本电脑上不到一秒就读取了 100 万行 2 个字符的行:

    fid = fopen('test.txt');
    A   = textscan(fid,'%2c','CommentStyle','XX');
    fclose(fid);
    A   = hex2dec(A{:});
    

    注意'CommentStyle' 选项会跳过那些以XX 开头的行。

    【讨论】:

    • 谢谢!那太棒了。非常感谢。
    猜你喜欢
    • 2014-02-25
    • 2016-11-04
    • 2015-01-26
    • 2015-05-01
    • 1970-01-01
    • 2012-08-20
    • 2015-12-09
    • 2014-02-18
    • 1970-01-01
    相关资源
    最近更新 更多