數(shù)學(xué)建模實(shí)驗(yàn)-華東師范_第1頁(yè)
數(shù)學(xué)建模實(shí)驗(yàn)-華東師范_第2頁(yè)
數(shù)學(xué)建模實(shí)驗(yàn)-華東師范_第3頁(yè)
數(shù)學(xué)建模實(shí)驗(yàn)-華東師范_第4頁(yè)
數(shù)學(xué)建模實(shí)驗(yàn)-華東師范_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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、1數(shù)學(xué)軟件 Matlab 文件操作2內(nèi)容提要 文件的打開(kāi)與關(guān)閉 文本文件的寫(xiě)與讀 二進(jìn)制文件的寫(xiě)與讀3 文件操作是一種重要的輸入輸出方式,Matlab 提供了一系列輸入輸出函數(shù),專(zhuān)門(mén)用于文件操作。 Matlab文件操作三步驟: Matlab中的輸入輸出函數(shù)是以 C 語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)中的輸入輸出函數(shù)為基礎(chǔ)開(kāi)發(fā)的,所以這些函數(shù)與 C 語(yǔ)言的輸入輸出函數(shù)相類(lèi)似。Matlab 文件操作介紹(1) 打開(kāi)文件(2) 對(duì)文件進(jìn)行讀寫(xiě)操作(3) 關(guān)閉文件4 打開(kāi)方式有(若不指定打開(kāi)方式,則表示只讀) :fid=fopen(文件名,打開(kāi)方式)r只讀,文件必須存在(缺省的打開(kāi)方式)w寫(xiě)文件,若文件已存在則原內(nèi)容將被

2、覆蓋;若文件不存在則新建一個(gè)a在文件末尾添加,文件若不存在則新建一個(gè)r+可讀可寫(xiě),文件必須存在w+可讀可寫(xiě),若文件已存在則原內(nèi)容將被覆蓋;若文件不存在則新建一個(gè)a+可讀可寫(xiě)可添加,文件若不存在則新建一個(gè)文件的打開(kāi) 其中文件名用字符串形式表示(可以帶路徑名) 文件的打開(kāi)5 fid 為文件句柄,通過(guò)它才能對(duì)該文件進(jìn)行操作 如果句柄值大于 0,則表示文件打開(kāi)成功; 若文件打開(kāi)失敗,fid 的返回值為 -1。 有兩個(gè)標(biāo)準(zhǔn)代碼文件,不需打開(kāi)就可以直接使用,分別為:fid=1 標(biāo)準(zhǔn)輸出文件,fid=2 標(biāo)準(zhǔn)錯(cuò)誤文件。文件的打開(kāi)fid=fopen(output.txt,wt+);fprintf(fid,He

3、llo world!n);fclose(fid);fprintf(1,Hello world!n);fprintf(2,Hello world!n);fid=fopen(文件名,打開(kāi)方式)6文件的關(guān)閉 其中 fid 為所要關(guān)閉的文件的句柄 status 為關(guān)閉文件的返回代碼,若成功則為 0,否則為 -1 文件操作結(jié)束后一定要關(guān)閉status=fclose(fid); 文件的關(guān)閉7內(nèi)容提要 文件的打開(kāi)與關(guān)閉 文本文件的寫(xiě)與讀 二進(jìn)制文件的寫(xiě)與讀8 將指定的變量按指定的格式寫(xiě)入文本文件中 若省略 fid,則表示在屏幕上輸出 count 返回所寫(xiě)入的數(shù)據(jù)的個(gè)數(shù)(可以省略) format 用來(lái)指定寫(xiě)數(shù)

4、據(jù)時(shí)采用的格式,通常由三部分組成 普通字符串、格式字符串、轉(zhuǎn)義字符count=fprintf(fid,format,輸出變量列表)文本文件的寫(xiě)入 向文本文件中寫(xiě)數(shù)據(jù)x=3.14; str=math; fid=fopen(output.txt,wt);fprintf(fid,x=%f, str=%sn, x, str);fclose(fid);9 數(shù)據(jù)輸出時(shí)采用的格式(format)文本文件的寫(xiě)入 flags (可選) width and precision (可選) conversion character (格式說(shuō)明符,必須) (1) 普通字符串:按原樣輸出(2) 格式字符串:指定變量的輸出

5、格式,以 % 開(kāi)頭,包括(3) 轉(zhuǎn)義字符:輸出特殊符號(hào),如換行等,常見(jiàn)的有:b退后一格t水平制表符f換頁(yè)反斜杠n換行單引號(hào)r回車(chē)%百分號(hào)10格式字符串fprintf(x= %-12.5f n, x)以 % 開(kāi)頭flagfield widthprecision格式說(shuō)明符- :左對(duì)齊+ :輸出符號(hào)0 :空白處添 0空格:前面加一空格字段寬度指定小數(shù)點(diǎn)后位數(shù) 格式字符串示例11格式說(shuō)明符 常見(jiàn)的格式說(shuō)明符c字符型g浮點(diǎn)數(shù)(自動(dòng))d十進(jìn)制整數(shù)o八進(jìn)制e浮點(diǎn)數(shù)(科學(xué)計(jì)數(shù)法)s字符串f浮點(diǎn)數(shù)(小數(shù)形式)x/X十六進(jìn)制x=sqrt(2);fid=fopen(out2.txt,wt);fprintf(fid,

6、x=%12.5f, n, x);fprintf(fid,x=%-12.5f, n, x);fclose(fid);例:12x=0:0.1:1; y=exp(x);fid=fopen(output.txt,wt);fprintf(fid, x exp(x)n);for k=1:length(x) fprintf(fid,%6.2f %12.8fn, x(k),y(k);endfclose(fid);例:文本文件寫(xiě)入舉例 注:格式的重復(fù)使用x=0:0.1:1; y=exp(x); z=x; y;fid=fopen(output.txt,wt);fprintf(fid, x exp(x)n); fp

7、rintf(fid,%6.2f %12.8fn, z);fclose(fid);13 A 用來(lái)存放讀取的數(shù)據(jù) count 返回讀取數(shù)據(jù)的個(gè)數(shù),為可選項(xiàng) fid 為文件句柄 size 為可選項(xiàng),若缺省,則讀取整個(gè)文件, 若給出,則取值可以是:A,count=fscanf(fid,format,size) A=fscanf(fid,format,size)文本文件的讀取N讀取 N 個(gè)數(shù)據(jù),組成一個(gè)列向量Inf讀取整個(gè)文件,組成一個(gè)列向量m,n讀取 m n 個(gè)數(shù)據(jù),組成到一個(gè) m n 矩陣,按列存放 從文本文件中讀取數(shù)據(jù)14文本文件讀取舉例x=0:0.1:1; y=exp(x); z=x; y;%

8、寫(xiě)文件fid=fopen(output.txt,wt);fprintf(fid,%6.2f %12.8fn, z); status=fclose(fid);% 讀文件fid=fopen(output.txt,rt);A=fscanf(fid,%f); % 注意格式字符串% A=fscanf(fid,%f,2,11);status=fclose(fid);例:15內(nèi)容提要 文件的打開(kāi)與關(guān)閉 文本文件的寫(xiě)與讀 二進(jìn)制文件的寫(xiě)與讀16 按指定的數(shù)據(jù)類(lèi)型將矩陣 A 中的元素寫(xiě)入到文件中。 其中 count 返回所寫(xiě)入的數(shù)據(jù)元素個(gè)數(shù)(可省略)count=fwrite(fid,A,precision)A=

9、magic(5); fid=fopen(magic5.dat,wb);fwrite(fid,A,int8);fclose(fid);fid=fopen(magic5.dat,rb);B,count=fread(fid,5,inf,int8);fclose(fid);二進(jìn)制文件的寫(xiě)入例: 向二進(jìn)制文件中寫(xiě)入數(shù)據(jù)17 precision 代表寫(xiě)入的數(shù)據(jù)的類(lèi)型,缺省為 ucharuchar無(wú)符號(hào)字符uint1616位無(wú)符號(hào)整數(shù)schar帶符號(hào)字符uint3232位無(wú)符號(hào)整數(shù)int88位帶符號(hào)整數(shù)uint6464位無(wú)符號(hào)整數(shù)int1616位帶符號(hào)整數(shù)float3232位浮點(diǎn)數(shù)int3232位帶符號(hào)整數(shù)

10、float6464位浮點(diǎn)數(shù)int6464位帶符號(hào)整數(shù)double64位雙精度數(shù)uint88位無(wú)符號(hào)整數(shù)二進(jìn)制文件18char帶符號(hào)字符short16位帶符號(hào)整數(shù)int32位帶符號(hào)整數(shù)long32或64位帶符號(hào)整數(shù)ushort16位無(wú)符號(hào)整數(shù)uint32位無(wú)符號(hào)整數(shù)ulong32或64位無(wú)符號(hào)整數(shù)float32位浮點(diǎn)數(shù) 以下數(shù)據(jù)類(lèi)型與使用的平臺(tái)有關(guān):二進(jìn)制文件19A,count=fread(fid,size,precision) A=fread(fid,size,precision)N讀取 N 個(gè)數(shù)據(jù),組成一個(gè)列向量Inf讀取整個(gè)文件,組成一個(gè)列向量m,n讀取 m n 個(gè)數(shù)據(jù)到一個(gè) m n 矩陣

11、中,按列存放二進(jìn)制文件的讀 A 用來(lái)存放讀取的數(shù)據(jù) count 返回讀取數(shù)據(jù)的個(gè)數(shù),可選項(xiàng) fid 為文件句柄 size 為可選項(xiàng),缺省為讀取整個(gè)文件。取值可以是: 從二進(jìn)制文件中讀取數(shù)據(jù)20fid=fopen(output.dat,rb);A=fread(fid,100,double);status=fclose(fid);fid=fopen(output.dat,rb);A,count=fread(fid,100,100,double);status=fclose(fid);例:二進(jìn)制文件讀寫(xiě)舉例21 打開(kāi)文件讀寫(xiě)數(shù)據(jù)時(shí),需要判斷和控制文件的讀寫(xiě)位置,如數(shù)據(jù)是否讀完,或者需要讀寫(xiě)指定位置上

12、的數(shù)據(jù)等。 在讀寫(xiě)文件時(shí),Matlab 自動(dòng)創(chuàng)建一個(gè)文件位置指針來(lái)管理和維護(hù)文件讀寫(xiě)數(shù)據(jù)的起始位置。 Matlab 提供了幾個(gè)文件位置指針定位操作函數(shù): fseek、ftell 、 frewind 和 feof讀寫(xiě)的定位 讀寫(xiě)的定位22status=fseek(fid,offset,origin) fid 為文件句柄 offset 表示位置指針相對(duì)偏移的字節(jié)數(shù),若為正表示向文件尾方偏移,若為負(fù)表示向文件頭方向偏移fseek cof 表示當(dāng)前位置, bof 表示文件的開(kāi)始位置, eof 表示文件末尾; 若定位成功,status 返回值為 0,否則返回 -1 origin 表示位置指針移動(dòng)的參照位置,有三種取值: 讀寫(xiě)的定位23frewind(fid)eofstat=ftell(fid) 判斷文件位置指針是否達(dá)到文件結(jié)束位置,若文件位置指針已在文件末尾,則返回 1,否則返回 0position=ftell(fid) 返回值為從文件開(kāi)始到指針當(dāng)前位置的字節(jié)數(shù) 將位置指針?lè)祷氐轿募钠鹗嘉恢胒tell、frewind 和 feof 讀寫(xiě)的定位24

溫馨提示

  • 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)論