2011-11-20 68 views
2

我有一个文本文件,它看起来像这样的文本文件:加载包含数字和字母

A B C 
1 2 3 

(这是什么其实我有只是一个小例子,我实际的文件是巨大的,在变化。行数。)

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

回答

2

调用fopen,fscanf和fclose。对于仅包含字母的行(如'%s\t%s\t%s')以及仅包含数字的行(如),格式字符串必须不同。您可以通过单个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'之内。

+0

嗯,这实际上只是我实际拥有的一个最小示例(这是一些大量文本文件,其行数不同)。 – Speldosa

+0

是否有任何结构,我的意思是,你能提前告诉哪些行只包含字母,哪些行只包含数字? – kol

+0

是的。我知道第一行和第二列将只包含字母。其他一切都是数字。 – Speldosa

相关问题