csv file reading limits question
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello, I'm trying to import the data from multiple csv files. My csv files have different numbers of heading lines. for example:
File one:
DATE = 20020414
TIME = 0723
Data 1, Data 2,
1,2
3,4...
File two:
DATE = 20020414
Data 1, Data 2,
1,2
3,4
4,5...
I have a code that works for a single csv file, using csvread/dlmread where I manually assign the row and column limits, but I would like to write a general code that can search for the number of headers in a specific file and adapt limits for file reading accordingly. Is there an easy way to do this? Should I be using a different function to read my data? (textscan, etc?)
댓글 수: 2
Jan
2011년 1월 26일
How do you distinct header lines from data lines? Do header lines never start with a number character, but data lines always do?
답변 (2개)
Walter Roberson
2011년 1월 26일
Provided that you have the same number of columns in each of the files:
fid = fopen(CurrentFileName,'rt');
failed = 0;
if fid < 0
disp(sprintf('Failed to open file: %s', CurrentFileName))
failed = 2;
else
while true
pos_at_line = fseek(fid);
this_line = fgetl(fid);
if ~ischar(this_line)
disp(sprintf('File has no dataset: %s', CurrentFileName))
failed = 1;
break
elseif any(this_line == '=')
continue
else
fseek(fid,pos_at_line,'bof');
break
end
end
if failed == 0
inputdata = textscan(fid, ...... ); %use an appropriate format
end
if failed <= 1
fclose(fid);
end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Text Files에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!