cannot read .csv
7 views (last 30 days)
Show older comments
I am trying to read a .csv file and tried csvread() and textscan(), none of them is worked.
When I use csv(fname) it said:
Error using dlmread (line 147)
Mismatch between file and format character vector.
Trouble reading 'Numeric' field from file (row number 1, field number 1) ==>
Y,D,1,stim/peach.bmp,PER,S,L,29972,4,601\n
When I use textscan(fname) it said:
Error using textscan
Not enough input arguments.
2 Comments
Stephen23
on 2 Nov 2018
Edited: Stephen23
on 2 Nov 2018
textscan reads your file perfectly:
opt = {'Delimiter',','};
fmt = '%s%s%f%s%s%s%s%f%f%f';
[fid,msg] = fopen('y01-1.csv','rt');
assert(fid>=3,msg)
C = textscan(fid,fmt,opt{:});
fclose(fid);
And some of the imported data:
>> C{1}(1:8)
ans =
'Y'
'Y'
'Y'
'Y'
'Y'
'Y'
'Y'
'Y'
>> C{2}(1:8)
ans =
'A'
'A'
'D'
'A'
'A'
'A'
'A'
'A'
>> C{3}(1:8)
ans =
3
3
1
3
3
3
3
3
... etc.
How did you try to use it?
Accepted Answer
More Answers (2)
Walter Roberson
on 2 Nov 2018
Use
readtable(fname, 'headerlines', 0)
csvread cannot be used to read files that contain text after a wanted numeric value. dlmread can be but only in a useless way.
textscan requires that you first fopen the file, and pass the file identifier and a format string into textscan.
0 Comments
See Also
Categories
Find more on Text Files in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!