Read file
조회 수: 18 (최근 30일)
이전 댓글 표시
Hi all,
probably a very simple question..I need to read a text file consisting of a list of vectors with this format:
skip the first 22 line and then (x y z) (x y z) (x y z) ... (x y z)
there are 263853 line. How can i do that??
thanks for any help
andrea
댓글 수: 0
답변 (3개)
Jan
2011년 2월 15일
The description of the file format is not exact enough. I'll show you a method for a well defined format and I assume you can adjust it to your needs:
I assume the file looks like this:
Header line 1
...
Header line 22
(0.1 0.2 0.3)
(0.17 19.5 231)
... <263853 of such lines>
This can be solved by TEXTSCAN or more low-levelish:
FID = fopen(FileName, 'r');
if FID <= 0, error('Cannot open file'); end
for iSkip = 1:22
dummy = fgetl(FID);
end
Data = fscanf(FID, '(%g %g %g)\n');
Data = transpose(reshape(Data, 3, []));
fclose(FID);
댓글 수: 2
Matt Tearle
2011년 2월 15일
Or, using textscan (as Jan mentioned):
FID = fopen(FileName, 'r');
if FID <= 0, error('Cannot open file'); end
Data = textscan(FID, '(%f %f %f)','headerlines',22);
x = Data{1};
y = Data{2};
z = Data{3};
fclose(FID);
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Text Data Preparation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!