How can I read a text file and import a part of it into matlab.
3 views (last 30 days)
Show older comments
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 Comment
Stephen23
on 23 Jun 2016
@Bibhu Das: please edit your question and upload the file by clicking the paperclip button.
Accepted Answer
dpb
on 23 Jun 2016
Edited: dpb
on 23 Jun 2016
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.
0 Comments
More Answers (1)
rocketboyjka
on 23 Jun 2016
Edited: rocketboyjka
on 23 Jun 2016
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
0 Comments
See Also
Categories
Find more on Text Files in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!