cannot read .csv

7 visualizzazioni (ultimi 30 giorni)
j shen
j shen il 2 Nov 2018
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 Commenti
Stephen23
Stephen23 il 2 Nov 2018
Modificato: Stephen23 il 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?
j shen
j shen il 2 Nov 2018
this one works better, thank you!

Accedi per commentare.

Risposta accettata

KSSV
KSSV il 2 Nov 2018
Modificato: KSSV il 2 Nov 2018
[num,txt,raw] = xlsread('y01-1.csv') ;
The better would be:
T = readtable('y01-1.csv')

Più risposte (2)

madhan ravi
madhan ravi il 2 Nov 2018
fid=fopen('y01-01.csv','r')
f = textscan(fid,'%s','delimiter',',')
fclose(fid)
or use

Walter Roberson
Walter Roberson il 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.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by