【发布时间】:2015-09-02 15:15:09
【问题描述】:
我有一个格式如下的文本文件:
Row: 001, rank: 6, max: 0.2431, index: 15.
Row: 002, rank: 10, max: 0.2331, index: 1.
Row: 003, rank: 110, max: 0.2330, index: 10.
也就是说,字段row 用零填充,因此数字具有三位。字段max 也被填充,使其具有固定长度。 rank 和 index 都没有填充。
[编辑本帖后添加]此外,数据前面有几行不相关的文本。不相关文本的行数未知。当且仅当它低于该行时,该行的格式如上:DATA START BELOW。
有没有办法使用命令读取文件
[A, count] = fscanf(fid,['what is a proper format?'],[?, numberOfRows]);
A = A';B = A(:,[i,j,k,l]);
这样B=[1,6,0.2431,15; 2,10,0.2331,1; 3,110,0.2330,10;];?
我知道的一种方法是[A, count] = fscanf(fid,['%s %d, %s %d, %s %f, %s %d.'],[AnInstantNumberRelatedToTheLengthOfALine, numberOfRows]); 但是,当新字段附加到每一行时,这种方法似乎缺乏灵活性。
【问题讨论】:
标签: string matlab file-io formatting scanf