从文件中读取格式化文本

Reading formatted text from a file

我想用 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)

它returns:

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.

拜托,谁知道如何逐行分别提取每一列?

数字是数组而不是单元格,应该更方便后面的处理。您可以通过

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

如果这不符合您的需要,您可以尝试一些功能,例如 importdata。