加载包含数字和字母的文本文件

时间:2011-11-20 00:14:39

标签: octave

我有一个看起来像这样的文本文件:

A    B    C
1    2    3

(这只是我实际拥有的一个最小例子。我的实际文件数量巨大且行数不同。)

我想将此文件加载到Octave中。但是,该文件包含字母,而不仅仅是数字。当我尝试应用加载函数时,我得到错误,我想这是因为加载函数只接受数字。 我应该使用什么功能?

1 个答案:

答案 0 :(得分:2)

调用fopen,fscanf和fclose。对于仅包含字母的行(如'%s\t%s\t%s'),以及仅包含数字的行(如'%g\t%g\t%g'),格式字符串必须不同。您可以通过单个fprintf调用读取相同结构的行。

示例文件(data.txt):

A        B        C
D        E        F
1        2        3
4        5        6
7        8        9
10       11       12

假设我们事先知道该文件包含3列,并且在开头有2行包含字符:

fid = fopen('data.txt', 'r');
[x, nx] = fscanf(fid, '%s\t%s\t%s', [3, 2]);
[y, ny] = fscanf(fid, '%g\t%g\t%g', [3, Inf]);
fclose(fid);

包含字符的行将位于x'中,带有数字的行将包含在y'中。