Reading csv files starting from a different row

35 views (last 30 days)
I have this csv file which I would like to import into Matlab. The "readtable" function allows me to import the csv into matlab easily into a table format. It automatically makes the first row the column names and assigns the cell A1 "Var1" since it is empty.
However, what I would like it to do is to read assign the column names according to the 3rd row since that contains the proper headers.
Is it always possible to locate the row containing " time(s) " and make that particular the header when using the readtable function?
Or is there an alternative method available that is accomplish the tasks mentioned above?
edit: attached the csv file

Accepted Answer

Mohammad Sami
Mohammad Sami on 24 Feb 2021
Edited: Mohammad Sami on 24 Feb 2021
You can use the import options to change the behaviour of the readtable function.
a = delimitedTextImportOptions('VariableNamesLine',3,'DataLines',5);
% or
% a = detectImportOptions('myfile.csv','VariableNamesLine',3,'Range',5);
b = readtable('myfile.csv',a);
% use the following if excel file
% a = detectImportOptions('testfile.xlsx','VariableNamesRange','A3','DataRange','A5');
  6 Comments
Hariharan MK
Hariharan MK on 25 Feb 2021
Hi
I managed to figure it out, since I always know that the headers appear 2 rows before the DataLines, I could change the
opts.VariableNamesLine = opts.DataLines(1)-2;
data = readtable("matlabqn_file1.csv",opts);
This method then allows me to select a particular row to become my header.
Thank you for your help!

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!