10/28/2006

7.7 fscanf讀取資料

正式之讀取資料函數如下之格式:

A=fscanf(fid,format)

[A, count]=fscanf(fid,format,size)

這個指令可以自fid所標示的檔案中將其資料依format的格式取出,並置於矩陣A中。fid的定義與前述之fprintf指令相同。另一種型式則增加count與size兩參數。count表示已完成的資料筆數。而size則是決定讀入之資料量,可用[m,n]表示,表示讀入之資料可填滿m x n的矩陣。其中n 可用inf取代,代表EOF(End of File)。

此處格式format%符號大體上與fprintf相同,其中%e,%f,%g均代表具有浮點之數據。以%12hd為例,12為數值之總位數,d代表使用整數,其前面所置的文字表示整數的型式,h代表短整數,l代表長整數,而lg則代表雙精度浮點值。這些文字代碼可參考fprintf指令,其功能相似。


fid=fopen('sinx.txt');
A=fscanf(fid,'%g %g',[2 inf]); %最後項為size,表示讀入二列資料,直到檔案底
fclose(fid);

A=A'
A =
0 0.3142
0.6283 0.9425
1.2566 1.5708
1.8850 2.1991
2.5133 2.8274
3.1416 0
0.3090 0.5878
0.8090 0.9511
1.0000 0.9511
0.8090 0.5878
0.3090 0