0

I try to load this .csv:

Time    Column01    Column02    Column03    
11.03.2004  09:17:02    236.81  237.31  236.45
11.03.2004  09:17:05    236.6   237.06  236.18
11.03.2004  09:17:08    236.67  237.16  236.28
11.03.2004  09:17:12    236.83  237.24  236.41
11.03.2004  09:17:15    233.84  234.2   233.4
...

using:

b=csvimport('u1.csv','columns',{'Time'});
c=csvimport('u1.csv','columns',{'Column03'});

first work, but second no. Anybody know why? I have this error:

Error using csvimport (line 200) Cannot locate column header 'Column03' in the file 'u1.csv'. Column header names are case sensitive.

Error in TSFP (line 4) c=csvimport('u1.csv','columns',{'Column03'});

Here is description about this function.

2 Answers 2

3

There are no commas in your file!

So strictly speaking, it's not a comma separated value file. From the looks of it, it's tab separated instead.

Probably you'll have better results using dlmread as in the first example:

M = gallery('integerdata', 100, [5 8], 0); 
dlmwrite('myfile.txt', M, 'delimiter', '\t')
dlmread('myfile.txt')
ans =
    96    77    62    41     6    21     2    42
    24    46    80    94    36    20    75    85
    61     2    93    92    82    61    45    53
    49    83    74    42     1    28    94    21
    90    45    18    90    14    20    47    68
Sign up to request clarification or add additional context in comments.

2 Comments

I tried this code, but I only got numbers, which didn't matched to original number:96 77 62 41 6 21 2 42 24 46 80 94 36 20 75 85 61 2 93 92 82 61 45 53 49 83 74 42 1 28 94 21 90 45 18 90 14 20 47 68
I'm sorry, I partly pasted the code in the example (corrected now). This writes a file, and then reads it back in, but of course you'd need to change the call to match your file name etc etc (read the docs for specifics).
1

I'd use textscan for this if you want to import all of the data. dlmread will only import numeric data, but your date and time columns need to be treated as strings.

filename='u1.csv';
fid=fopen(filename,'r');
C=textscan(fid, '%s%s%f%f%f', 'HeaderLines', 1);
fclose(fid);

C is a cell array, so to access the second value in the date column and the second value in Column01 you'd do this:

date = C{1}{2};
value = C{3}(2);

It's worth noting that this imports the date and time separately because there is whitespace between them in the file. If you wanted to recombine them you could do this:

C={strcat(C{1}, {' '}, C{2}), C{3:5}};

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.