matlab文件讀取--超經(jīng)典.ppt_第1頁(yè)
matlab文件讀取--超經(jīng)典.ppt_第2頁(yè)
matlab文件讀取--超經(jīng)典.ppt_第3頁(yè)
matlab文件讀取--超經(jīng)典.ppt_第4頁(yè)
matlab文件讀取--超經(jīng)典.ppt_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三講文件操作,Matlab環(huán)境下的文件與其它系統(tǒng)一樣,也有二類(lèi)文件組成,一是文件,又稱(chēng)M文件,另一類(lèi)是數(shù)據(jù)文件。系統(tǒng)除提供了文件的一般管理功能外,還提供了對(duì)數(shù)據(jù)文件進(jìn)行操作的特殊功能函數(shù)。,3.1 基本命令,1. help 幫助命令 格式: help 命令名 例如: help plot helpmatlabgeneral 2. what 顯示目錄內(nèi)容命令 格式: what 目錄名 例如: what matlab 顯示matlab目錄下的所有M-文件。,3.1 基本命令,3type 顯示文件內(nèi)容命令 格式: type文件名 顯示M-文件的內(nèi)容。 4 尋找命令 格式: lookfor 命令或字符

2、串 尋找命令或字符串是否存在。 例如: lookfor cos,3.1 基本命令,5which 尋找函數(shù)命令 格式:which 函數(shù)名 顯示函數(shù)所在的文件位置,給出路徑。 例如: which pinv 6 path 路徑控制命令 格式: path 路徑 顯示或改變搜索路徑。 例如: path (path,d:testaaa),3.1 基本命令,7who,whos 顯示變量命令 顯示當(dāng)前變量。 whos命令更詳細(xì)。 8 load,save 取出與保存結(jié)果命令 從磁盤(pán)上讀出或保存計(jì)算結(jié)果。 例如: save test 將變量存入test.mat文件中。 例如: save test x y 僅保存x

3、 ,y 變量。,3.1 基本命令,9 clear 清除變量命令 格式: 變量名 例如: clear x y 10 disp 顯示文本或變量?jī)?nèi)容命令 例如:x=1 2 3 disp(x) y=aaaaaaa disp(y),3.1 基本命令,11 cd 改變目錄命令 與DOS類(lèi)似。 12 dir 顯示目錄內(nèi)容命令 顯示目錄里的文件。 例如:dir matlabnotebook,3.1 基本命令,13delete 刪除文件或?qū)ο竺?格式: delete 文件名 不能用通配符 delete(對(duì)象) 例如:H=PLOT(X,X) delete (H) 刪除圖形對(duì)象H,3.1 基本命令,14! 執(zhí)行系

4、統(tǒng)命令 在Windows下運(yùn)行?!埃 庇糜趫?zhí)行DOS命令。 例如:!dir *.exe 顯示當(dāng)前目錄里的EXE文件。,3.2 文件的打開(kāi)與關(guān)閉,Matlab提供了對(duì)數(shù)據(jù)文件建立、打開(kāi)、讀、寫(xiě)以及關(guān)閉等一系列函數(shù),數(shù)據(jù)文件一般存放在磁盤(pán)等介質(zhì)上,用文件名標(biāo)識(shí),系統(tǒng)對(duì)文件名沒(méi)有特殊要求。文件數(shù)據(jù)格式有二種形式,一是二進(jìn)制格式文件,二是ASCII文本文件,系統(tǒng)對(duì)這兩類(lèi)文件提供了不同的讀寫(xiě)功能函數(shù)。,3.2 文件的打開(kāi)與關(guān)閉,1 fopen打開(kāi)文件 在讀寫(xiě)文件之前,必須先用fopen命令打開(kāi)一個(gè)文件,并指定允許對(duì)該文件進(jìn)行的操作。文件操作結(jié)束后,應(yīng)及時(shí)關(guān)閉文件,以免數(shù)據(jù)的丟失或誤修改。fopen函數(shù)格

5、式為: Fid= fopen(filename,permission),3.2 文件的打開(kāi)與關(guān)閉,其中filename為文件名,permission為文件格式,可以是下列格式之一: r 打開(kāi)文件,讀數(shù)據(jù),文件必須存在。 w 打開(kāi)文件,寫(xiě)數(shù)據(jù),若文件不存在,系統(tǒng)會(huì)自動(dòng)建立。 a 打開(kāi)文件,在文件末尾添加數(shù)據(jù)。 r+ 打開(kāi)文件,可以讀和寫(xiě)數(shù)據(jù),文件必須存在。 w+ 打開(kāi)文件,供讀與寫(xiě)數(shù)據(jù)用。 a+ 打開(kāi)文件,供讀與添加數(shù)據(jù)用。 W 打開(kāi)文件供寫(xiě)數(shù)據(jù)用,無(wú)自動(dòng)刷新功能。 A 打開(kāi)文件供添加數(shù)據(jù)用,無(wú)自動(dòng)刷新功能。,3.2 文件的打開(kāi)與關(guān)閉,例如:打開(kāi)一個(gè)名為std.dat的數(shù)據(jù)文件并進(jìn)行讀操作,其命

6、令格式為: Fid=fopen( std.dat, r ) 上述打開(kāi)格式均為二進(jìn)制格式,如果想用ASCII文本格式,則必須在格式字符串中加上字符t,例如用r t表示以ASCII格式打開(kāi)供讀操作的數(shù)據(jù)文件。,3.2 文件的打開(kāi)與關(guān)閉,2 fclose關(guān)閉文件 文件在進(jìn)行完讀、寫(xiě)等操作后,應(yīng)及時(shí)關(guān)閉,以保證文件的安全可靠。關(guān)閉文件命令格式為: Sta=fclose(Fid) 關(guān)閉Fid所表示的文件 Sta表示關(guān)閉文件操作的返回代碼,若關(guān)閉成功,返回0,否則返回1。,3.3 文件的讀寫(xiě)操作,1 二進(jìn)制數(shù)據(jù)文件 fread 讀二進(jìn)制數(shù)據(jù)文件。格式為: A,COUNT=fread(Fid,size,pr

7、ecision) 其中A為數(shù)據(jù)矩陣,COUNT返回所讀取的數(shù)據(jù)元素個(gè)數(shù)。size為可選項(xiàng),若不選用則讀取整個(gè)文件內(nèi)容,若選用它的值可以是下列值:,3.3 文件的讀寫(xiě)操作,N 讀取 N個(gè)元素到一個(gè)列向量。 inf 讀取整個(gè)文件。 M,N 讀數(shù)據(jù)到MN的矩陣中,數(shù)據(jù)按列存放。,3.3 文件的讀寫(xiě)操作,precision用于控制所讀數(shù)據(jù)的精度格式。 缺省格式為uchar,即無(wú)符號(hào)字符格式。例如:Fid=fopen(std.dat, r); A=fread(Fid, 100, long); Sta=fclose(fid); 以讀數(shù)據(jù)方式打開(kāi)數(shù)據(jù)文件std.dat,并按長(zhǎng)整型數(shù)據(jù)格式讀取文件的前100個(gè)

8、數(shù)據(jù)放入向量A,然后關(guān)閉文件。,3.3 文件的讀寫(xiě)操作,fwrite 函數(shù)以二進(jìn)制格式向數(shù)據(jù)文件寫(xiě)數(shù)據(jù),其格式為: COUNT=fwrite (Fid, A, precision) 例如:Fid=fopen(magic5.bin, wb); fwrite(Fid, magic, int32); 上述語(yǔ)句將矩陣magic中的數(shù)據(jù)寫(xiě)入文件magic5.bin中,數(shù)據(jù)格式為32位整型二進(jìn)制格式。,3.3 文件的讀寫(xiě)操作,【例1】建立一數(shù)據(jù)文件test.dat,用于存放矩陣A的數(shù)據(jù)。 已知 A=-0.6515 -0.2727 -0.4354 -0.3190 -0.9047 -0.7534 -0.456

9、7 -0.3212 -0.4132 -0.3583 -0.9264 -0.8173 -0.7823 -0.3265 -0.0631 -0.1735 -0.7373 -0.0972 -0.3267 -0.6298 -0.4768 -0.6773 -0.6574 -0.1923 -0.4389,3.3 文件的讀寫(xiě)操作,Fid=fopen(test.dat, w) cnt=fwrite(Fid, A, float) fclose(Fid) 程序段將矩陣A的數(shù)據(jù)以二進(jìn)制浮點(diǎn)數(shù)格式寫(xiě)入文件test.dat中。 Fid=fopen(test.dat, r) B,cnt=fread(Fid, 5,inf,

10、float) fclose(Fid) 讀取文件test.dat的內(nèi)容。,3.3 文件的讀寫(xiě)操作,2 文本文件 fscanf 讀ASCII文本文件 A,COUNT= fscanf (Fid, format, size) 其中A為數(shù)據(jù)矩陣,用以存放讀取的數(shù)據(jù),COUNT返回所讀取的數(shù)據(jù)元素個(gè)數(shù)。 format用以控制讀取的數(shù)據(jù)格式,由%加上格式符組成,格式符為: d, i, o, u, x, e, f, g, s, c與. . .,3.3 文件的讀寫(xiě)操作,例如: s=fscanf(fid, %s) 讀取一個(gè)字符串 a=fscanf(fid, %5d) 讀取5位數(shù)的整數(shù) b= fscanf(fid,

11、 %6.2d) 讀取浮點(diǎn)數(shù),3.3 文件的讀寫(xiě)操作,fprintf 寫(xiě)ASCII數(shù)據(jù)文件,其格式為: COUNT= fprintf(Fid, format, A,) 其中A為要寫(xiě)入文件的數(shù)據(jù)矩陣,先按format格式化數(shù)據(jù)矩陣A,后寫(xiě)入到Fid所指定的文件。 例如:x = 0: 0.1: 1; y = x; exp(x); Fid = fopen(exp.txt, w); fprintf(Fid,%6.2f %12.8fn,y); fclose(Fid);,3.4 數(shù)據(jù)文件定位寫(xiě)操作,1.fseek函數(shù)定位文件位置指針,格式為: status=fseek(Fid, offset, origin

12、) 其中Fid為文件句柄,offset表示位置指針相對(duì)移動(dòng)的字節(jié)數(shù),若為正整數(shù)表示向文件尾方向移動(dòng),若為負(fù)整數(shù)表示向文件頭方向移動(dòng),origin表示位置指針移動(dòng)的參照位置,它的取值有三種可能:cof 表示文件的當(dāng)前位置,bof 表示文件的開(kāi)始位置,eof 表示文件的結(jié)束位置。若定位成功status返回值為0,否則返回值為1。,3.4 數(shù)據(jù)文件定位寫(xiě)操作,2. ftell函數(shù)返回文件指針的當(dāng)前位置。 其格式為: position=ftell (Fid) 返回值為從文件開(kāi)始到指針當(dāng)前位置的字節(jié)數(shù)。若返回值為1表示獲取文件當(dāng)前位置失敗。,3.4 數(shù)據(jù)文件定位寫(xiě)操作,【例2】下述程序段說(shuō)明了函數(shù)fse

13、ek和ftell的使用。 a=1: 5; Fid=fopen(fdat.bin, w); 以寫(xiě)方式打開(kāi)文件fdat.bin fwrite(Fid, a, int16 ); 將a中的5個(gè)數(shù)據(jù)元素分別以 雙字節(jié)整型格式寫(xiě)入 status=fclose(Fid); 文件fdat.bin Fid=fopen(fdat.bin, r); 以讀數(shù)據(jù)方式打開(kāi)文件,3.4 數(shù)據(jù)文件定位寫(xiě)操作,status=fseek(Fid, 6, bof); 將文件數(shù)據(jù)指針從開(kāi)始位置向尾部移動(dòng)6個(gè)字節(jié) four=fread(Fid, 1, int16); 讀取當(dāng)前數(shù)據(jù),即第4個(gè)數(shù)據(jù),并移動(dòng)指針到下一個(gè)數(shù)據(jù) position=ftell(Fid); eight=fread(Fid, 1, int16); 讀取第8個(gè)數(shù)據(jù) status=fcl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論