2014-05-13 8 views
0

텍스트 파일에서 데이터를 읽으려고합니다. 데이터는 임의의 단어가있는 줄에 불과합니다. 이 파일의 빈 줄을 건너 뛰고로드하지 않으려 고합니다. 나는 fgetl을 루프로 사용하여 데이터를로드하고 feof (fid) 명령문 == 0을 사용하여 파일 끝에 도달했을 때를 알 수있다. 나는 그 줄을 건너 뛰기 위해서 isempty를 사용하려고한다. 그러나 문제는 빈 행 뒤에 줄을 건너 뛴다는 것입니다. 루프 내에서 문제가 있다고 생각합니다. feof (fid)를 표현하여 충돌이 발생하는 다른 방법이 있습니까?matlab load data feof (fid)

while feof(fid)==0 
    randomline=fgetl(fid) 
    if isempty(aline) 
     randomline=fgetl(fid) 
    else 
     %store data 
    end 
end 

답변

4

fgetl 라인 카운터를 증가시킵니다. 데이터 확인 논리에서 fgetl에 대한 다른 호출을 추가하면 두 번째 시간이 증가하는 이유가됩니다.

while ~feof(fid) 
    randomline = fgetl(fid) 
    if ~isempty(randomline) 
     % if line is not empty, store the line 
    end 
end