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

Stephen23
Stephen23 2018년 11월 2일
편집: Stephen23 2018년 11월 2일
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 2018년 11월 2일
this one works better, thank you!

댓글을 달려면 로그인하십시오.

 채택된 답변

KSSV
KSSV 2018년 11월 2일
편집: KSSV 2018년 11월 2일

0 개 추천

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

추가 답변 (2개)

madhan ravi
madhan ravi 2018년 11월 2일

0 개 추천

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

0 개 추천

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.

카테고리

태그

질문:

2018년 11월 2일

편집:

2018년 11월 4일

Community Treasure Hunt

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

Start Hunting!

Translated by