版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2023/2/3機械工業(yè)出版社Page1第4章MATLAB數據文件I/O【學習目標】了解導入向導的使用熟悉MATLAB文件的基本操作掌握MAT文件、二進制文件、文本文件、音/視頻文件的讀寫2023/2/3機械工業(yè)出版社Page2導入向導的使用4.1文件的基本操作4.2讀寫MAT文件4.3讀寫二進制文件4.4第4章MATLAB數據文件I/O讀寫文本文件4.5操作音頻/視頻文件4.62023/2/3機械工業(yè)出版社Page34.1導入向導的使用打開導入向導方式:執(zhí)行【File】菜單下的【ImportData】命令;在MATLAB命令行中,鍵入指令uiimport;執(zhí)行【Start】菜單下子菜單下的【ImportWizard】命令2023/2/3機械工業(yè)出版社Page44.1導入向導的使用2023/2/3機械工業(yè)出版社Page54.1導入向導的使用2023/2/3機械工業(yè)出版社Page64.1導入向導的使用2023/2/3機械工業(yè)出版社Page74.2文件的基本操作4.2.1文件的打開與關閉4.2.2文件的位置控制2023/2/3機械工業(yè)出版社Page81.文件的打開與關閉fopen函數的語法形式如下:fileID=fopen(filename)fileID=fopen(filename,permission)fileID=fopen(filename,permission,machineformat)fileID=fopen(filename,permission,machineformat,encoding)[fileID,message]=fopen(filename,...)2023/2/3機械工業(yè)出版社Page91.文件的打開與關閉函數各參數含義如下:filename:要打開的文件的名稱;permission:指定打開文件的模式,MATLAB中文件打開模式如表4-1所示;machineformat:指定文件中數據的數字格式;encoding:指定文件中數據的編碼方式;fileID:返回文件標識;message:返回打開文件的消息。2023/2/3機械工業(yè)出版社Page101.文件的打開與關閉permission說明r以只讀方式打開文件,該文件必須已存在r+以讀寫方式打開文件,該文件必須已存在w以只寫方式打開文件。該文件已存在則更新,不存在則創(chuàng)建新文件w+以讀寫方式打開文件。該文件已存在則更新;不存在則創(chuàng)建新文件a以只寫文件方式打開,把寫入的內容增加到文件的結尾,文件不存在則創(chuàng)建新文件a+以讀寫方式打開文件,把寫入的內容增加到文件的結尾,若文件不存在則創(chuàng)建新的文件W不進行自動洗帶的寫入數據(針對于磁帶機的特殊命令)A不進行自動洗帶的添加數據(針對于磁帶機的特殊命令)2023/2/3機械工業(yè)出版社Page111.文件的打開與關閉fclose語法形式如下:status=fclose(fileID)status=fclose('all')fileID:該參數為fopen函數返回的文件標識;status:該參數為操作返回的結果。如果操作成功,則返回0,否則返回-1;fclose('all')表示關閉所有已經打開的文件。2023/2/3機械工業(yè)出版社Page122.文件的位置控制函數名稱說明fseek設定指針在文件中的位置ftell獲得指針在文件中的位置frewind重設指針到文件起始的位置feof判斷指針是否在文件結束位置2023/2/3機械工業(yè)出版社Page132.文件的位置控制函數fseek常用的語法形式如下:fseek(fileID,offset,origin)status=fseek(fileID,offset,origin)函數各參數含義如下:fileID:該參數為fopen函數返回的文件指針;offset:該參數為整數型變量,表示相對于指定位置需要的偏移字節(jié)數,正數表示向文件末尾偏移,負數表示向文件開頭偏移,0表示沒有相對偏移;origin:該參數可以是特定字符串,也可以是整數,表示指針在文件中的起始位置。status:函數返回的狀態(tài),0表示操作成功,-1表示操作失敗。2023/2/3機械工業(yè)出版社Page142.文件的位置控制
函數ftell用來獲得當前文件指針的位置,其具體的調用格式為:
position=ftell(fileID)position為返回值,表示當前文件指針的位置。position是以相對于文件開頭的字節(jié)數來表示的。如果返回值為-1,表示調用失敗。
函數frewind用于把文件指針重新設置到文件開頭,其語法形式如下:
frewind(fileID)函數feof用來判斷是否到達文件末尾,其語法形式如下:
status=feof(fileID)status為返回值,當到達文件末尾時,status為1;否則為0。2023/2/3機械工業(yè)出版社Page152.文件的位置控制【例4-3】文件內位置控制函數使用示例。%example4_3.m%clc;clearall;closeall;x=1:10filename='mydata.dat';fid=fopen(filename,'wb');%打開文件fwrite(fid,x,'int16'); %寫入數據fclose(fid); %關閉文件fid=fopen(filename,'rb');fseek(fid,5*2,'bof');%設定指針在文件中的位置y=fread(fid,2,'int16'); %讀取文件2023/2/3機械工業(yè)出版社Page162.文件的位置控制y=y.'pos=ftell(fid)/2%獲得當前文件指針的位置frewind(fid); %把文件指針重新設置到文件開頭z=fread(fid,10,'int16');%判斷是否到達文件末尾z=z.'status=feof(fid)2023/2/3機械工業(yè)出版社Page174.3讀寫MAT文件4.3.1MAT文件的寫入4.3.2MAT文件的讀取2023/2/3機械工業(yè)出版社Page18 mat文件是MATLAB專用的數據文件格式,以雙精度二進制格式保存數據。它由128字節(jié)的mat文件頭和其后的數據單元組成,文件頭包括MATLAB的版本號、數據和文件被創(chuàng)建的時間等信息。4.3讀寫MAT文件2023/2/3機械工業(yè)出版社Page19 MATLAB中使用save函數可以將工作區(qū)中的數據保存為mat文件: savefilename[listofvariable][options]1.MAT文件的寫入2023/2/3機械工業(yè)出版社Page201.MAT文件的寫入【例4-4】save函數使用示例。%example4_4.m%clc;clearall;closeall;x1=20;x2=30;x3=40;y1=0;%創(chuàng)建變量savexdatax1x2%將x1,x2保存到文件xdata中, %數據類型默認為mat數據格式savexdata2.datx1x2–ascii%將x1,x2以ascii格式保 %存到文件xdata2.dat中2023/2/3機械工業(yè)出版社Page21 MATLAB中使用load函數把磁盤中的mat文件數據讀入到工作區(qū)中: loadfilename[option]2.MAT文件的讀取2023/2/3機械工業(yè)出版社Page221.MAT文件的寫入【例4-5】load函數使用示例。將上例中兩個數據文件加載到MATLAB工作區(qū)中。>>loadxdata>>whosNameSizeBytesClassAttributesx11x18doublex21x18double>>loadxdata2.dat>>whosNameSizeBytesClassAttributesx11x18double2023/2/3機械工業(yè)出版社Page234.4讀寫二進制文件4.4.1二進制文件的寫入4.4.2二進制文件的讀取2023/2/3機械工業(yè)出版社Page241.二進制文件的寫入
函數fwrite以自定義格式把二進制數據寫入文件。函數的語法形式如下:fwrite(fileID,A)fwrite(fileID,A,precision)fwrite(fileID,A,precision,skip)count=fwrite(...)函數各參數含義如下:fileID:fopen函數返回的文件標識;A:需要寫入的數字或字符數組;skip:指定在每一次寫入輸出文件之前要跳過的字節(jié)數,如果數據類型為'bitn'或'ubitn',則skip以比特為單位;count:返回寫入文件變量的數目。2023/2/3機械工業(yè)出版社Page251.二進制文件的寫入precision:該參數表示按指定的數據類型寫入,MATLAB支持的數據類型如表所示數據類型標識符說明數據類型標識符說明'char*1'8位字符'uint16'16位無符號整數'schar'8位有符號字符'uint32'32位無符號整數'uchar'8位無符號字符'uint64'64位無符號整數'int8'8位整數'float32'32位浮點數'int16'16位整數'float64'64位浮點數'int32'32位整數'bitn'n位帶符號整數(1≤n≤64)'int64'64位整數'ubitn'n位無符號整數(1≤n≤64)'uint8'8位無符號整數2023/2/3機械工業(yè)出版社Page261.二進制文件的寫入【例4-6】二進制文件寫入示例:產生一個正弦信號,以二進制方式將信號寫入文件中。filename='mywritedata.dat';x=1:500;y=100*sin(2*pi*0.02*x);
%產生正弦信號[fid,msg]=fopen(filename,'w');%以寫方式打開文件iffid>0count=fwrite(fid,y,'float64');disp([int2str(count)'valueswritten...']);status=fclose(fid);elsedisp(msg);end2023/2/3機械工業(yè)出版社Page272.二進制文件的讀取
函數fread以用戶自定義格式從文件中讀取二進制數據。函數的語法形式如下:A=fread(fileID)A=fread(fileID,sizeA)A=fread(fileID,sizeA,precision)A=fread(fileID,sizeA,precision,skip)A=fread(fileID,sizeA,precision,skip,machineformat)[A,count]=fread(...)2023/2/3機械工業(yè)出版社Page282.二進制文件的讀取函數各參數含義如下:fileID:fopen函數返回的文件標識;sizeA:指定讀取文件中變量的數目,也就是返回矩陣A的維數;precision:指定讀取的數據類型。2023/2/3機械工業(yè)出版社Page292.二進制文件的讀取【例4-7】二進制文件讀取示例:將上例中的數據文件讀入到工作區(qū)間。clc;clearall;closeall;filename='mywritedata.dat';[fid,msg]=fopen(filename,'r');%打開數據文件iffid>0[y,count]=fread(fid,'float64');%讀取數據文件disp([int2str(count)'valuesread...']);status=fclose(fid);elsedisp(msg);end2023/2/3機械工業(yè)出版社Page304.5讀寫文本文件4.5.1文本文件的寫入4.5.2文本文件的讀取2023/2/3機械工業(yè)出版社Page31函數說明csvread讀取以逗號作為間隔符的文本文件csvwrite保存數據到文本文件,以逗號作為間隔符dlmread按照指定的間隔符讀取文本文件的數據dlmwrte按照指定的間隔符將數據寫入文本文件textread按照指定的格式從文本文件中讀取數據文本文件的讀寫函數2023/2/3機械工業(yè)出版社Page321.文本文件的寫入函數dlmwrte將數據按照指定的間隔符寫入到文本文件中,函數的語法形式如下:dlmwrite(filename,M)dlmwrite(filename,M,'attrib1',value1,'attrib2',value2,...)dlmwrite(filename,M,'-append')函數各參數含義如下:filename:指定需要寫入的文件名;M:寫入的數據矩陣;‘attrib1’,‘attrib2’…:函數的屬性列表。'-append':以追加的方式寫入文件。2023/2/3機械工業(yè)出版社Page331.文本文件的寫入函數csvwrite是以逗號為間隔將數據保存為文本文件,函數的語法形式如下:csvwrite(filename,M)csvwrite(filename,M,row,col)csvwrite是dlmwrite的一個特例,數據的分隔符為逗號,其余用法與dlmwrite類似。2023/2/3機械工業(yè)出版社Page342.文本文件的讀取函數dlmread用于讀取有分隔符的ASCII文件到矩陣函數中,函數的語法形式如下:M=dlmread(filename,delimiter)M=dlmread(filename,delimiter,R,C)M=dlmread(filename,delimiter,range)函數各參數含義如下:filename:指定具有分割標志的ASCII文件;delimiter:指定文件元素的分割符,默認分隔符使用逗號;R、C:指定了數據在文件中的左上角位置。range:定義的區(qū)域塊的數值,range=[R1C1R2C2]。也可以使用電子表格符號來指定,range='A1..B7';2023/2/3機械工業(yè)出版社Page352.文本文件的讀取textread函數的語法形式如下:[A,B,C,...]=textread(filename,format)[A,B,C,...]=textread(filename,format,N)[...]=textread(...,param,value,...)函數各參數含義如下:filename:指定讀取的文件名;format:指定讀取數據的格式,textread支持的讀取數據格式如表4-6所示;N:當N為大于0的整數時,表示按format指定的數據格式讀取N次;當N小于0時,讀取整個文件的數據;A,B,C,...:返回的數據變量,括號里面變量的個數必須和format中定義的個數相同。2023/2/3機械工業(yè)出版社Page364.6操作音頻/視頻文件4.6.1音頻文件的導入導出與播放4.6.2視頻文件的導入導出與播放2023/2/3機械工業(yè)出版社Page371.音頻文件的導入導出與播放auread函數:讀取NeXT/Sun格式的音頻文件auwrite函數:寫入NeXT/Sun格式的音頻文件wavread函數:讀取WAVE格式的音頻文件wavwrite函數:寫入WAVE格式的音頻文件sound函數:音頻播放2023/2/3機械工業(yè)出版社Page381.音頻文件的導入導出與播放函數auread用于讀取NeXT/Sun格式的音頻文件,其常用的語法形式如下:y=auread(aufile)[y,Fs]=auread(aufile)[...]=auread(aufile,N)siz=auread(aufile,'size')函數各參數含義如下:aufile:指定讀取的音頻文件名稱;Fs:返回的音頻采樣率,單位為Hz;nbits:返回每個采樣點的比特數;N:從每個通道讀取前N個點;siz:返回音頻數據的實際大小,包括樣點數、通道數。2023/2/3機械工業(yè)出版社Page391.音頻文件的導入導出與播放與auread相對應的寫入操作是auwrite,其常用的語法形式如下:auwrite(y,aufile)auwrite(y,Fs,aufile)auwrite(y,Fs,N,aufile)auwrite(y,Fs,N,method,aufile)N:指定音頻的編碼比特,N的取值可以是8或16;method:指定音頻的編碼方法,可以是'mu'或'linear。2023/2/3機械工業(yè)出版社Page401.音頻文件的導入導出與播放WAVE格式的讀寫函數為wavread和wavwrite,wavread函數的常用語法形式如下:y=wavread(filename)[y,Fs,nbits]=wavread(filename)[y,Fs,nbits,opts]=wavread(filename)[...]=wavread(filename,N)[...]=wavread(filename,[N1N2])siz=wavread(filename,'size')2023/2/3機械工業(yè)出版社Page411.音頻文件的導入導出與播放WAVE格式的音頻文件寫入使用wavwrite,其常用語法形式如下:wavwrite(y,filename)wavwrite(y,Fs,filename)wavwrite(y,Fs,N,filename)2023/2/3機械工業(yè)出版社Page421.音頻文件的導入導出與播放【例4-13】音頻文件的讀取與播放示例。clc;clearall;closeall;file='myaudio.wav';[x,fs,bits]=wavread(file);%讀入聲音文件(*.wav)sound(x,fs,bits);%數據通過聲卡轉換為聲音n=length(x);t=0:1/fs:1/fs*(n-1);y=x(:,1);%左聲道信號波形數據plot(t,y);title(['左聲道聲音波形']);xlabel(['采樣點數']);2023/2/3機械工業(yè)出版社Page432.視頻文件的導入導出與播放視頻文件的導入導出
函數aviread讀取avi視頻文件得到MATLABmovie視頻幀,其常用的語法形式如下:mov=aviread(filename)mov=aviread(filename,index)其中index表示視頻幀的幀標記,返回的mov為MATLABmovie的結構體。2023/2/3機械工業(yè)出版社Page442.視頻文件的導入導出與播放視頻文件的導入導出函數avifile用于創(chuàng)建avi視頻文件,其常用的語法形式如下:aviobj=avifile(filename)avifile(filename,ParameterName,ParameterValue)其中ParameterName,ParameterValue指定了創(chuàng)建的視頻文件的各種參數,包括顏色模式、壓縮格式、質量等2023/2/3機械工業(yè)出版社
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 ISO 21922:2021/Amd 1:2024 EN Refrigerating systems and heat pumps - Valves - Requirements,testing and marking - Amendment 1
- 臨時保潔勞務協議
- 員工評語范文(15篇)
- 企業(yè)年安全生產工作總結
- 中考結束后家長對老師的感言(9篇)
- 產科護士出科小結范文
- 中秋節(jié)晚會的活動主持詞(7篇)
- 論語制作課件教學課件
- DB12∕T 902-2019 日光溫室和塑料大棚小氣候自動觀測站選型與安裝技術要求
- 課件如何變現教學課件
- 初級會計實務題庫(613道)
- 初中七年級主題班會:如何管理好自己的時間(課件)
- GB 5920-2024汽車和掛車光信號裝置及系統
- 高中地理人教版(2019)必修第一冊 全冊教案
- 萬達入職性格在線測評題
- 2024新人教版語文二年級上冊《第五單元 課文》大單元整體教學設計
- 大型集團公司信息安全整體規(guī)劃方案相關兩份資料
- 第五單元測試卷(單元測試)-2024-2025學年六年級上冊語文統編版
- 打造低空應急體系場景應用實施方案
- 高校實驗室安全通識課學習通超星期末考試答案章節(jié)答案2024年
- 中華人民共和國標準設計施工總承包招標文件(2012年版)
評論
0/150
提交評論