从文件中读取格式化文本

时间:2017-06-05 15:52:16

标签: matlab textscan

我想用Matlab阅读下面的文本文件:

00000008.jpg 1 2 1
00000001.jpg 1 2 1
00000054.jpg 1 2 1

我想要提取的是每行的每一列,以便访问它。

我尝试过以下代码:

fileLabels = fopen('file.txt');
C = textscan(fileLabels,'%s %n %n %n');
celldisp(C)

它返回:

C{1}{1} =
00000008.jpg

C{1}{2} = 
00000001.jpg

C{1}{3} =
00000054.jpg

哪个好,因为这样我在单元格中分隔了第一个字符串,但是,当我尝试获取数字时,它们会以这种方式出现:

C{2} =
     1
     1
     1

C{3} =
     2
     2
     2

C{4} =
     1
     1
     1

它们不是在细胞中分开,而是在一个细胞中出现。如果我尝试访问2º列的一个单元格,则会出现以下错误:

>> C{2}{1}
Cell contents reference from a non-cell array object.

请知道,如何逐行分别提取每一列?

1 个答案:

答案 0 :(得分:1)

数字是数组而不是单元格,这对后续过程应该更方便。您可以通过

访问这些号码
C{2}(1) % C{2} is 3x1 array, not cell

如果这不符合您的需要,您可以尝试使用importdata等功能。