我有一个包含以下信息的文件:
id allele1 allele2
1 A A
2 T A
3 A A
. ...
. ...
. ...
我想将文件解析为一个包含三个字段的结构数组,(id, allele1, allele2)
其中 id 是从 1 到 n 的所有数字,等位基因 1 是第一列字符,等位基因 2 是第二列。
但是,我很难弄清楚如何去做。
将来,最好展示您尝试过的内容。但是,这应该可以帮助您入门。
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'}