資源描述:
《《數(shù)學(xué)軟件MATLAB》PPT課件》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)學(xué)實(shí)驗(yàn)Matlab文件操作文件操作是一種重要的輸入輸出方式,Matlab提供了一系列輸入輸出函數(shù),專門用于文件操作。Matlab文件操作主要有三個步驟:首先打開文件,然后對文件進(jìn)行讀寫操作,最后要關(guān)閉文件。Matlab中的輸入輸出函數(shù)是以C語言標(biāo)準(zhǔn)庫函數(shù)中的輸入輸出函數(shù)為基礎(chǔ)開發(fā)的,所以這些函數(shù)與C語言的輸入輸出函數(shù)相類似。Matlab文件操作介紹常見的打開方式有:fid=fopen(文件名,打開方式)'r'只讀,文件必須存在(缺省的打開方式)'w'寫文件,若文件已存在則原內(nèi)容將被覆蓋;若文件不存在則新建一個'a
2、'在文件末尾添加,文件若不存在則新建一個'r+'可讀可寫,文件必須存在'w+'可讀可寫,若文件已存在則原內(nèi)容將被覆蓋;若文件不存在則新建一個'a+'可讀可寫可添加,文件若不存在則新建一個文件的打開其中文件名用字符串形式表示(可以帶路徑名)fid為文件句柄,其它函數(shù)可以用它對該文件進(jìn)行操作。如果句柄值大于0,則表示文件打開成功;若打開失敗,fid的返回值為-1。有兩個標(biāo)準(zhǔn)代碼文件,不需打開就可以直接使用,分別為:fid=1標(biāo)準(zhǔn)輸出文件,fid=2標(biāo)準(zhǔn)錯誤文件。文件的打開fid=fopen('output.txt','
3、wt+');fprintf(fid,'Helloworld!');fclose(fid);fprintf(1,'Helloworld!');fprintf(2,'Helloworld!');文件有兩種格式:二進(jìn)制文件(b)和文本文件(t)。在Windows下,打開文件的默認(rèn)是二進(jìn)制格式,如果要以文本方式打開,則必須在打方式中加上字符't'。若不指定打開方式,則表示只讀。文件的打開fid=fopen('output.txt','wt+');其中fid為所要關(guān)閉的文件的句柄,status為關(guān)閉文件的返回代碼
4、,若關(guān)閉成功則為0,否則為-1。status=fclose(fid);文件的關(guān)閉A用來存放讀取的數(shù)據(jù)count返回讀取數(shù)據(jù)的個數(shù),為可選項(xiàng)fid為文件句柄size為可選項(xiàng),缺省為讀取整個文件,若給出,則取值可以是:[A,count]=fscanf(fid,format,size)文本文件的讀取N讀取N個數(shù)據(jù)到一個列向量Inf讀取整個文件[m,n]讀取m?n個數(shù)據(jù)到一個m?n矩陣中,按列存放c字符型g浮點(diǎn)數(shù)(自動)d十進(jìn)制整數(shù)o八進(jìn)制e浮點(diǎn)數(shù)(科學(xué)計(jì)數(shù)法)s字符串f浮點(diǎn)數(shù)(小數(shù)形式)x十六進(jìn)制文本文件的讀取form
5、at用來控制讀取的數(shù)據(jù)格式,由%加上格式符組成,下表中是常見的格式符,在%之后可以加上數(shù)據(jù)寬度,如%12d將輸出變量按指定的格式寫入文件中若省略fid,則表示在屏幕上輸出count返回所寫入的數(shù)據(jù)元素個數(shù)(可省)format以%開頭,通常由以下幾個部分組成:count=fprintf(fid,format,輸出變量列表)flags(optional)Widthandprecisionfields(optional)Conversioncharacter(required)文本文件的寫入fprintf舉例fprint
6、f('a=%-12.5f',123.456)format以%開頭flagfieldwidthprecision格式說明符-:左對齊+:輸出符號0:空白處添0空格:前面加一空格字段寬度小數(shù)點(diǎn)后輸出位數(shù)文本文件的寫入fprintf命令的格式說明符c字符型g浮點(diǎn)數(shù)(自動)d十進(jìn)制整數(shù)o八進(jìn)制e浮點(diǎn)數(shù)(科學(xué)計(jì)數(shù)法)s字符串f浮點(diǎn)數(shù)(小數(shù)形式)x/X十六進(jìn)制format中還可以使用的特殊字符b退后一格t水平制表符f換頁\反斜杠換行''單引號r回車%%百分號x=0:0.1:1;y=[x;exp(x)];fi
7、d=fopen('output.dat','wt');fprintf(fid,'xexp(x)');fprintf(fid,'%6.2f%12.8f',y);status=fclose(fid);例:文本文件的寫入舉例[A,count]=fread(fid,size,precision)N讀取N個數(shù)據(jù)到一個列向量Inf讀取整個文件[m,n]讀取m?n個數(shù)據(jù)到一個m?n矩陣中,按列存放二進(jìn)制文件的讀寫A用來存放讀取的數(shù)據(jù)count返回讀取數(shù)據(jù)的個數(shù),可選項(xiàng)fid為文件句柄size為可選項(xiàng),缺省為讀取整個文件,
8、若給出,則取值可以是:precision代表讀取的數(shù)據(jù)的類型,缺省為uchar'uchar'無符號字符'uint16'16位無符號整數(shù)'schar'帶符號字符'uint32'32位無符號整數(shù)'int8'8位帶符號整數(shù)'uint64'64位無符號整數(shù)'int16'16位帶符號整數(shù)'float32'32位浮點(diǎn)數(shù)'int32'32位帶符號整數(shù)'float64'