dataload

4 views (last 30 days)
Christof
Christof on 6 Jul 2011
Hello, I try to use the following command to read in a csv file
[data D]=importdata('FI.csv',',');
the file looks like
Time last_price volume Security Side 1/3/2011 9:10 100.18 678 RXP1EX GY Equity B 1/3/2011 9:30 100.18 84524 RXP1EX GY Equity B
However, Matlab returns a cell with 1 column only, instead of 5. How can i fix this? Cheers,
  2 Comments
Christof
Christof on 6 Jul 2011
Time last_price volume Security Side
1/3/2011 9:10 100.18 678 RXP1EX GY Equity B 1/3/2011 9:30 100.18 84524 RXP1EX GY Equity B
Jan
Jan on 6 Jul 2011
Please edit your original post. I assume it gets nicer if you start the lines showing your file by a space.

Sign in to comment.

Answers (2)

Jan
Jan on 6 Jul 2011
You specify in the call of IMPORTDATA, that the values are separated by commas. But the file does not contain commas. Perhaps this works:
[data, D]=importdata('FI.csv', ' ');

john
john on 6 Jul 2011
There is a function
csvread(parameters...)
which I've used before for this. Check it out.
  2 Comments
Christof
Christof on 6 Jul 2011
when I use that command, Matlab spits out an error
Error using ==> dlmread at 145
Mismatch between file and format string.
Trouble reading number from file (row 1, field 1) ==> Time,
Error in ==> csvread at 52
m=dlmread(filename, ',', r, c);
think it does not like strings, only integers
john
john on 7 Jul 2011
Ok. Then I'd go with Jan's answer above -
This should give you the line broken up into (many) fields and then you just work with the fields you want.
Have you tried the import wizard and used it to generate m-code? Just double click the data file in Matlab.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!