2017-03-27 1 views
1

16 개의 정수로 구성된 백만 줄 이상의 데이터 파일이 있는데 (실제로 중요하지 않음) Octave에서 줄을 처리해야합니다. 분명히 전체 파일을로드하는 것은 불가능합니다. 특정 행만로드하려면 어떻게해야합니까?특정 줄만로드하십시오.

나는 두 가지 가능성을 생각 : 나는 CSV로 파일을 변환하고 csvread의 일부 기능을 사용합니다 간단한 I/O

  • 의 문서에

    • 내가 놓친 뭔가
  • +0

    이 파일의 중간에 임의의 라인을 얻을 수 fgetl를 사용할 수 있습니까? – Suever

    +0

    예, 그렇습니다. 요점은 전체 파일을로드하는 대신 줄을 따라 순환하는 것입니다. –

    +0

    그래서 줄 단위로 뭔가를하고 싶습니까? – Suever

    답변

    3

    줄 단위로 파일을 반복하려는 경우 파일을 열고 fscanf을 사용하여 각 줄을 구문 분석 할 수 있습니다. 당신이 문자열로 각 행을 원하는 경우에

    fid = fopen(filename); 
    
    while true 
        % Read the next 16 integers 
        data = fscanf(fid, '%d', 16); 
    
        % Go until we can't read anymore 
        if isempty(data) 
         break 
        end 
    end 
    

    , 대신 각 라인

    fid = fopen(filename); 
    
    % Get the first line 
    line = fgetl(fid); 
    
    while line 
        % Do thing 
    
        % Get the next line 
        line = fgetl(fid); 
    end 
    
    관련 문제