2011-11-20 59 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

相關問題