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 commentaires

Stephen23
Stephen23 le 2 Nov 2018
Modifié(e) : Stephen23 le 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 le 2 Nov 2018
this one works better, thank you!

Connectez-vous pour commenter.

 Réponse acceptée

KSSV
KSSV le 2 Nov 2018
Modifié(e) : KSSV le 2 Nov 2018

0 votes

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

Plus de réponses (2)

madhan ravi
madhan ravi le 2 Nov 2018

0 votes

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

0 votes

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.

Catégories

En savoir plus sur Large Files and Big Data dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by