How can I read a text file and import a part of it into matlab.

조회 수: 5 (최근 30일)
Bibhu Das
Bibhu Das 2016년 6월 23일
편집: rocketboyjka 2016년 6월 23일
I have a text file with 13 columns and some 900 rows. But,column 9 to 12 are asterisk and 13th is again numeric.I want to import only the numerics from 1st row to 38th row and 1st column to 8th column.Please help.
  댓글 수: 1
Stephen23
Stephen23 2016년 6월 23일
@Bibhu Das: please edit your question and upload the file by clicking the paperclip button.

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

채택된 답변

dpb
dpb 2016년 6월 23일
편집: dpb 2016년 6월 23일
fmt=[repmat('%f',1,8) %*[^\n]']; % 8 values, skip rest of line format string
fid=fopen('yourfilenamehere'); % open the file; return file handle
data=cell2mat(textscan(fid,fmt,38,'collectoutput',1)); % read; repeat format 38 times
fid=fclose(fid); % close file
% do whatever w/ data here...
NB: I went ahead and wrapped the textscan call in cell2mat to return a double array. I assumed delimiter one of the default; if something else you'll need to fixup to match.
See
doc textscan % for details, examples, etc., ...
Or, option B:
Use the data import tool from the User Interface that (I think) will let you select an area to import from the file...not sure how it will do with such a long file but presume it'll handle it.

추가 답변 (1개)

rocketboyjka
rocketboyjka 2016년 6월 23일
편집: rocketboyjka 2016년 6월 23일
Take a look at the the textscan() function. Something like this should work:
numRows = 38; % Or however many you want
fileID = fopen('MyFile.txt'); % Open the file
myData = textscan(fileID,'%f %f %f %f %f %f %f %f %s %s %s %s %f',numRows); % Read the specified format
fclose(fileID); % close the file
myData = myData([1:8]); % get rid of the columns you don't want
myData = cell2mat(myData); % Convert the cell array to a matrix

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by