Filter löschen
Filter löschen

Method of extracting data from CSV

5 Ansichten (letzte 30 Tage)
Mate 2u
Mate 2u am 12 Apr. 2013
Dear All, I have a very large CSV file with 5 columns which contains some historical financial prices.
Column 1 is our date starting from 1/3/2007 all the way till till mid 2011 in the form of mm/dd/yyyy.
Column 2 is our time of out trades in the form of :
35:45.0 35:45.0 35:46.0 35:46.0 35:46.0 (as seen in excel)
However when I change the data type of this column in excel from CUSTOM to TIME I get something better which I need:
13:07:23 13:07:24 13:07:24 13:07:25 13:07:25
Column 3 is our respective prices
Column 4 is our symbol (stays the same)
Column 5 is the number of trades.
So my question is I have all of this information...
I want to put the all the columns in one matrix in MATLAB (apart from 4). But I DONT want it to be a string matrix as I want to do some operations with the data.
Hint: May need to convert column 1 and 2 in to number format?

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 12 Apr. 2013
fid = fopen('YourFile.csv', 'rt');
datacell = textscan(fid, '%s%s%f%*s%f', 'Delimiter', ',');
dates = datenum(datacell{1}, 'mm/dd/yyyy');
outtrades = datenum(datacell{2}, 'MM:SS:FFF');
prices = datacell{3};
ntrades = datacell{5};
datamatrix = horzcat(dates, outtrades, prices, ntrades);
Question: is there no hour in the data?
  6 Kommentare
Mate 2u
Mate 2u am 12 Apr. 2013
CSV does not fully open on matlabs editor due to the limit of 1 million rows.
Mate 2u
Mate 2u am 12 Apr. 2013
Actually this suffices.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)


Mehr zu Time Series Objects finden Sie in Help Center und File Exchange


Community Treasure Hunt

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

Start Hunting!

Translated by