Importing a text file with two headers and data so that the headers are the variable names

3 views (last 30 days)
I have a large amount of data and usually just manually import it in by deleting the units row (2nd row) and using the first row as the variable name. But I would like to make a script to make my life easier, but have wasted too much time already trying to figure it out.
Basically, is there an easy script to import a .txt file, delete the second row and use the first row as the variable names of the numerical data arrays?
  3 Comments
Andrew
Andrew on 4 Jan 2012
here is an example of the data, I do not care about the units, and would like the the column headers to be the varible names of the array
Temp_pre_bpv_Value Air_pres_filtered Actual_fuel_value
K kPa mg
708.1 289 264.5
707 289.2 263.5
708.1 289.7 263.6
707 289.9 263.7
708.1 289.9 263.7
709.1 289.1 170.2
709.1 285.6 0
Thank You.

Sign in to comment.

Accepted Answer

Teja Muppirala
Teja Muppirala on 4 Jan 2012
There are a lot of ways to deal with reading in data. This is one imaginative way of doing it, but I think it should work. (Here I assume each value is separated by a single space, and each value is read in as a double). Maybe someone has a simpler idea.
fid = fopen('myfile.txt','r');
firstline = fgetl(fid);
numvars = numel(strread(firstline,'%s'));
fgetl(fid); %<-- Skip the second line
data = textscan(fid,repmat('%f',1,numvars));
eval(['[' strrep(firstline,' ',',') '] = deal(data{:})'])
fclose(fid);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!