2

我有大量需要解析的文本文件(制表符分隔的数据)。它们大多格式良好。但是,随机散布的行包含错误字符,如下所示。每个文件中坏行的位置不同,但添加的字符始终相同。

1   3
2   873
3   46
23  99798
23  1
353 79
"23 ,"  967
35  8028
253 615
"235 ," 3924
345 188
345 579
345 419
56  16835
23  449

importdata(filename) 将所有数据导入到第一个格式错误的行,然后忽略文件的其余部分。我想我可以通过 fopen 和 textscan 的组合来做我想做的事情,但我似乎无法获得正确的参数组合来使其工作。

4

1 回答 1

2

尝试使用textread带有%q格式字符串的函数。假设问题中的测试数据保存为test.txt

>> [a, b] = textread('test.txt', '%q %q');

>> a'

ans = 

  Columns 1 through 9

    '1'    '2'    '3'    '23'    '23'    '353'    '23 ,'    '35'    '253'

  Columns 10 through 15

    '235 ,'    '345'    '345'    '345'    '56'    '23'

>> b'

ans = 

  Columns 1 through 9

    '3'    '873'    '46'    '99798'    '1'    '79'    '967'    '8028'    '615'

  Columns 10 through 15

    '3924'    '188'    '579'    '419'    '16835'    '449'

然后,您可以使用str2double删除a. 例如:

>> str2double(a)'

ans =

  Columns 1 through 13

     1     2     3    23    23   353    23    35   253   235   345   345   345

  Columns 14 through 15

    56    23
于 2012-05-31T13:08:41.783 回答