从文件中读取格式化文本
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。
我想用 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。