我有一个看起来像这样的文本文件:
A B C
1 2 3
(这只是我实际拥有的一个最小例子。我的实际文件数量巨大且行数不同。)
我想将此文件加载到Octave中。但是,该文件包含字母,而不仅仅是数字。当我尝试应用加载函数时,我得到错误,我想这是因为加载函数只接受数字。 我应该使用什么功能?
答案 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'
中。