Time serie import from csv

34 views (last 30 days)
Agnete
Agnete on 4 Oct 2013
Answered: Andualem on 22 Feb 2024
I need help on import of a time series to matlab. The time series has been converted to csv (number formats gets the dilimanation ""?!!). I have tried Import Data Wizard to import the csv file, but it resulted in one collected column.
Then I tried to make a script. Currently I get this error message:
Error using textscan Delimiter must be a string.
Error in importfile (line 6) A=textscan(fid,'%s %f %f %f %f %f %f %f %f %f %f','HEADERLINES',1 ,'Delimiter', {',' ,'"'},'CollectOutput',1,'HEADERLINES',1);
My code is: function [data,time,ts1]=importfile(NAMgaug) clear all NAM='Nam_rain_2005-2011_6.csv'; fid=fopen(NAM,'r'); A=textscan(fid,'%s %f %f %f %f %f %f %f %f %f %f','HEADERLINES',1 ,'Delimiter', {',' ,'"'},'CollectOutput',1,'HEADERLINES',1); fclose(fid); time=datenum(A(end:1)); data=A(end:2); ts1=timeseries(data,datestr(time)); end
Any heads-up is greatly appreciated
By the way I use Matlab R2012a
  2 Comments
Cedric
Cedric on 4 Oct 2013
Why do you need the conversion to CSV?
Agnete
Agnete on 6 Oct 2013
I thought matlab could not read excel formats. Thanks so much for the reply.

Sign in to comment.

Accepted Answer

Cedric
Cedric on 4 Oct 2013
Edited: Cedric on 4 Oct 2013
I'd personally read data directly from the XLS file..
[num,txt] = xlsread( 'Nam_rain_2005-2011_6.xls' ) ;
dates = datenum( txt(2:end) ) ;
columnCodes = num(1,:) ;
data = num(2:end,:) ;
which avoids the conversion to CSV and the need for building a TEXTSCAN-based parser.

More Answers (1)

Andualem
Andualem on 22 Feb 2024
i have csv data for pm2.5 and want work plot

Community Treasure Hunt

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

Start Hunting!