2012-05-14 89 views
0

一個結構陣列我有一個包含信息的文件如下:解析文件,以在Matlab

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

我想文件解析成含有一個結構陣列三個字段(id, allele1, allele2)其中id是所有從1號最多n個,allele1是第一列字符,allele2是第二列。

但是我很難搞清楚如何去做這件事。

回答

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'}