Matlab textscan在输出数组中引入额外的零
我有一个.txt文件,如下所示: 作战需求文件,第1类 作战需求文件,第1类 作战需求文件,第3类 作战需求文件,第1类 奥德,猫,4 我知道每行的条目数(逗号分隔),但不知道行数。 我需要在数组中导入以下车辆的编号。 我写道:Matlab textscan在输出数组中引入额外的零,matlab,Matlab,我有一个.txt文件,如下所示: 作战需求文件,第1类 作战需求文件,第1类 作战需求文件,第3类 作战需求文件,第1类 奥德,猫,4 我知道每行的条目数(逗号分隔),但不知道行数。 我需要在数组中导入以下车辆的编号。 我写道: fid=fopen(filename) A=textscan(fid,'%s%s%d','Delimiter',',') 但我明白了 A = {17x1 cell} [16x1 int32] 细胞数量明显错误的地方。 当我尝试阅读时 A{3} 我明白了
fid=fopen(filename)
A=textscan(fid,'%s%s%d','Delimiter',',')
但我明白了
A = {17x1 cell} [16x1 int32]
细胞数量明显错误的地方。
当我尝试阅读时
A{3}
我明白了
我对整数数组非常感兴趣,但也许可以向您展示:
A{1}
A{2}
好的,我想输入文件中有某种格式错误。
我删除了它并创建了一个新的.txt文件,上面的代码运行良好。您没有为
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',',')
hi!谢谢你友好的回答。我修复了你在这里说的格式错误,这是由于我正在处理的另一个文件的错误。但产出问题仍然存在,没有受到影响。
ans =
0
0
0
0
0
1
0
1
0
3
0
1
0
4
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'
'}'
ans =
''
''
''
''
''
'cat'
''
'cat'
''
'cat'
''
'cat'
''
'cat'