Matlab textscan在输出数组中引入额外的零

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} 我明白了

我有一个.txt文件,如下所示:

作战需求文件,第1类

作战需求文件,第1类

作战需求文件,第3类

作战需求文件,第1类

奥德,猫,4

我知道每行的条目数(逗号分隔),但不知道行数。 我需要在数组中导入以下车辆的编号。 我写道:

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'