필터 지우기
필터 지우기

How to ignore or delete the last row of a text file when importing?

조회 수: 9 (최근 30일)
Al
Al 2015년 5월 31일
댓글: Star Strider 2015년 5월 31일
I am reading in data using textscan. Often times the last row of data is bad and throws an error. How can I ignore the last line? or is there code to delete the last row of data in the text file programmatically?

채택된 답변

Star Strider
Star Strider 2015년 5월 31일
It’s difficult to be specific without your file. If you know how many lines you want to read, you can set that limit as a parameter.
From the documentation:
  • C = textscan(fileID,formatSpec,N) reads file data using the formatSpec N times, where N is a positive integer. To read additional data from the file after N cycles, call textscan again using the original fileID. If you resume a text scan of a file by calling textscan with the same file identifier (fileID), then textscan automatically resumes reading at the point where it terminated the last read.
  댓글 수: 2
Al
Al 2015년 5월 31일
편집: Al 2015년 5월 31일
I placed this code prior to texscan
fid = fopen('your_file.TXT','r');
fseek(fid, 0, 'eof');
chunksize = ftell(fid);
fseek(fid, 0, 'bof');
ch = fread(fid, chunksize, '*uchar');
nol = sum(ch == sprintf('\n')); % number of lines
fclose(fid)
Then I replaced the N in
C = textscan(fileID,formatSpec,N)
with
nol-2
This did it. Thank you.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Image Analyst
Image Analyst 2015년 5월 31일
Put it in a try catch block. Look it up in the help. You can just have your catch block be empty if you want to ignore any errors.

카테고리

Help CenterFile Exchange에서 Text Data Preparation에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by