Importing data from multiple .dat files into an array

I have several hundred .dat files (saved in folders of ~15 for each geographic location they represent) that I want to add to my structural array, with each column as a field:
ie. the column headed density becomes
TVC.Date.Location.SMP.Profiles.Number.density_smp
However, my .dat files have 4 rows of metadata and then the headers before the data I need starts.
I've created a filelist for the first folder containing the .dat files and then tried
% pit RP_04
cd 'G:\Uni_Work\PHD\Data\Trail Valley Creek\Winter 2018-19\January 2019\SMP\Processed\RP_04';
FileList39 = dir('*.dat'); % generate a list of filenames which can be used to generate locations of profiles
Data_and_Headers = importdata(FileList39(1), '\t');
I've tried "ImportData" and "ReadTable" which I saw suggested on here, and had no luck with either. Any suggestions?

 Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 16 Mär. 2020
Bearbeitet: Ameer Hamza am 16 Mär. 2020
Try readmatrix and specify the number of header lines
readmatrix(FileList39(1).name, 'NumHeaderLines', 5)
or readtable with
readtable(FileList39(1).name, 'HeaderLines', 5)

4 Kommentare

Thanks for the suggestion! However, I tried and got the following error:
Please check the updated answer. dir('*.dat') returns a struct array, and you need to access its name field.
Thanks. I think this gets me half way there. How would I then save column from this double as matrices?
Have you read the files using readmatrix or readtable? readmatrix already outputs a matrix, for readtable you can use table2array.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Large Files and Big Data finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by