0

我有一个包含以下信息的文件:

id   allele1 allele2
1    A A
2    T A
3    A A
.    ...
.    ...
.    ...

我想将文件解析为一个包含三个字段的结构数组,(id, allele1, allele2)其中 id 是从 1 到 n 的所有数字,等位基因 1 是第一列字符,等位基因 2 是第二列。

但是,我很难弄清楚如何去做。

4

1 回答 1

1

将来,最好展示您尝试过的内容。但是,这应该可以帮助您入门。

fid = fopen('input.txt','r');

%header line
line = fgetl(fid);
header = regexpi(line,'\W+','split');

ID=1;

%read first line
line = fgetl(fid);

while ischar(line)

   l = regexpi(line,'\W+','split');

   for i=1:numel(l)
       data(ID).(header{i}) = l(i);
   end
    ID = ID+1;
    line = fgetl(fid);
end
fclose(fid);

导致:

>> data

data = 

1x4 struct array with fields:
    id
    allele1
    allele2

>> data(1)

ans = 

         id: {'1'}
    allele1: {'A'}
    allele2: {'A'}

>> data(2)

ans = 

         id: {'2'}
    allele1: {'T'}
    allele2: {'A'}
于 2012-05-14T16:40:00.390 回答