How can I Insert a CSV filename into my array

4 vues (au cours des 30 derniers jours)
AR
AR le 2 Nov 2016
Need help with preparing data.
I'm creating an array by appending 500 csv files of daily stock data (varying rows), each with 7-columns using with code below.
How can I create an 8th column with the filename (or just part of the filename) so I can later identify which file belongs with which rows of data?
Thanks.
dname='C:\project\';
alldata=[];
files=dir([dname,'*.csv']);
for i=1:length(files);
csvdata=csvread([dname,files(i).name]);
alldata=[alldata;csvdata];
end

Réponse acceptée

Walter Roberson
Walter Roberson le 2 Nov 2016
You cannot. csvread() only reads numeric data, so your arrays would be numeric. You cannot store character strings in numeric arrays.
  • You can create separate variables.
  • You can switch to a cell array -- num2cell() the numeric data and then horzcat() on the cell array of strings
  • You can use array2table() to convert to a table() data structure and then add the file names as a column of that.

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by