How do I import specific columns from a text file?

I have a rather lengthy script that I am tasked with fixing. The script pulls data from a .txt file, does some calculations, and plots data.
The script currently uses dlmread to open the .txt file, but this no longer works because a new data format (a notes column text instead of numeric data) was added in the middle of the columns of the text file. Now whenever the script gets to the point of the text file, there is a mismatch in data type and I get this error message.
Error using dlmread (line 147)
Mismatch between file and format character vector.
Trouble reading 'Numeric' field from file
Is it possible to tell Matlab to 'skip' over this one notes column while still using dlmread in the text file? Somehow choose columns 1-10 and 12-25 or something along those lines. I tried using readtable, but that got me a large table that I then couldn't convert back into the double arrays that the script originally started with. Trying to read the table and then convert to an excel spreadsheet didn't work either.

1 Comment

There are many other functions to read text files. You may have a look on textscan, load, importdata etc. Coding depends on how your text file is and what you want. To get more help, attach your text file and mention what you want.

Sign in to comment.

 Accepted Answer

You can use readtable() to read the data from text file in the form of a table and then delete appropriate columns. For example
data = readtable(filename);
data(:,11) = []; will delete column 11
If then you want to convert the table to a matrix so that it match with the output of dlmread() to make it compatible with remaining code then use
data = table2array(data);

2 Comments

Thank you. That was the most straightforward way to do it.

Sign in to comment.

More Answers (0)

Products

Release

R2017a

Asked:

on 11 May 2018

Commented:

on 14 May 2018

Community Treasure Hunt

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

Start Hunting!