我有一个像这样的.txt文件:
ORD,猫,1
ORD,猫,1
ORD,猫,3
ORD,猫,1
ORD,猫,4
我知道每行的条目数(以逗号分隔)但不知道行数。 我需要在数组中导入以下汽车的编号。 我写了这个:
fid=fopen(filename)
A=textscan(fid,'%s%s%d','Delimiter',',')
但我得到了这个
A = {17x1 cell} [16x1 int32]
其中细胞数量明显错误。 当我尝试阅读时
A{3}
我得到了
ans =
0
0
0
0
0
1
0
1
0
3
0
1
0
4
我对整数数组感兴趣,但也可能对你有用:
A {1}
ans =
'{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf400'
'{\fonttbl\f0\fswiss\fcharset0 Helvetica;}'
'{\colortbl;\red255\green255\blue255;}'
[1x75 char]
[1x102 char]
'\f0\fs24 \cf0 ord'
'\'
'ord'
'\'
'ord'
'\'
'ord'
'\'
'ord'
'}'
A {2}
ans =
''
''
''
''
''
'cat'
''
'cat'
''
'cat'
''
'cat'
''
'cat'
好的,我认为输入文件中存在某种格式错误。 我删除了它并创建了一个新的.txt文件,上面的代码工作正常。
答案 0 :(得分:2)
您没有向textscan
提供正确的格式化命令。
A=textscan(fid,'%s%d','Delimiter',',')
'%s%d'
这里的意思是“读取一个字符串,然后读取一个整数”。所以它可能会在那里读取字符串整数字符串整数(或尝试),而“0”由错误产生
由于每行有三个条目,请尝试改为:
A=textscan(fid,'%s%s%d','Delimiter',',')
您的号码应该在A{3}
。
如果您不需要前两列,也可以跳过这些字段:
A=textscan(fid,'%*s%*s%d','Delimiter',',')