版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第六章 文件IO&程序接口n文件IO 高級例程 低級例程n編程示例n程序接口6.1 文件IO數(shù)據(jù)導(dǎo)入數(shù)據(jù)導(dǎo)入/導(dǎo)出導(dǎo)出:MATLAB提供了強(qiáng)大的提供了強(qiáng)大的數(shù)據(jù)處理數(shù)據(jù)處理能力,但是在數(shù)能力,但是在數(shù)據(jù)處理之前,可能需要據(jù)處理之前,可能需要導(dǎo)入數(shù)據(jù)導(dǎo)入數(shù)據(jù),處理完之后,可能需,處理完之后,可能需要要導(dǎo)出數(shù)據(jù)導(dǎo)出數(shù)據(jù)。 例子例子: 有一有一excel文件(文件(oilprice_simple.xls)存放存放了石了石油價格的數(shù)據(jù),想要繪圖顯示時間油價格的數(shù)據(jù),想要繪圖顯示時間-價格曲線,如何處理?價格曲線,如何處理?Note:繪圖等都沒有問題了,但是數(shù)據(jù)如何從:繪圖等都沒有問題了,但是數(shù)
2、據(jù)如何從excel導(dǎo)入導(dǎo)入到到matlab環(huán)境?環(huán)境?6.1 文件IOMatlab提供了如下文件讀寫的方式:提供了如下文件讀寫的方式:1)高級例程高級例程: matlab特有的特有的mat文件文件 指令指令: save、load;2) 低級例程低級例程: 一般的二進(jìn)制文件一般的二進(jìn)制文件 指令:指令:fopen、fread、fwrite、fclose3)其他常見文件類型的操作其他常見文件類型的操作: excel文件、圖像、視頻文件、圖像、視頻avi等;等;6.1 文件IO Mat文件格式文件格式:文件頭部文件頭部+變量名變量名+變量數(shù)據(jù)變量數(shù)據(jù)。1)頭部)頭部:包括:包括MATLAB版本信息、
3、使用的操作系統(tǒng)平臺和文件創(chuàng)版本信息、使用的操作系統(tǒng)平臺和文件創(chuàng)建時間。建時間。2)數(shù)據(jù))數(shù)據(jù):按照數(shù)據(jù)類型、數(shù)據(jù)長度和數(shù)據(jù)三個部分保存:按照數(shù)據(jù)類型、數(shù)據(jù)長度和數(shù)據(jù)三個部分保存的。的。 數(shù)據(jù)長度數(shù)據(jù)類型數(shù)據(jù)長度數(shù)據(jù)類型描述文字(124字節(jié))標(biāo)識版本6.1 文件IO6.1.1 高級例程高級例程 1)save: 將當(dāng)前工作空間中的變量將當(dāng)前工作空間中的變量保存保存成成MAT文件文件, 2)load: 將將MAT文件文件中的數(shù)據(jù)中的數(shù)據(jù)導(dǎo)入導(dǎo)入到到MATLAB的工作空間中。的工作空間中。 note:load和和save指令不僅能夠加載和保存指令不僅能夠加載和保存MAT格式格式的數(shù)據(jù)文件,而且還能夠加
4、載一般的文本格式文件。的數(shù)據(jù)文件,而且還能夠加載一般的文本格式文件。 save指令基本語法:指令基本語法: 1)save filename var1 var2. 將工作空間中的變將工作空間中的變 量量var1、var2等保存到指定文件等保存到指定文件中;中;2)save(filename,.) save指令的函數(shù)格式用法指令的函數(shù)格式用法 例子:創(chuàng)建一個例子:創(chuàng)建一個magic矩陣,并保存。矩陣,并保存。 save指令指令 例子例子:創(chuàng)建一個:創(chuàng)建一個magic矩陣矩陣A,求其逆矩陣,求其逆矩陣B,將,將A、B保存到保存到magic.mat文件中去。文件中去。Code(save_load_ex
5、am.m)magicMat=magic(4);magicInv=inv(magicMat);save magic.mat magicMat magicInvNote: save指令后不用加分號指令后不用加分號“;”。 load指令:指令: save-保存保存(write);load載入載入(read) load指令的基本語法:指令的基本語法:1)load filename 將指定文件中將指定文件中所有所有的變量加載到當(dāng)前的工作空間的變量加載到當(dāng)前的工作空間2)load filename var1 var2 . 將指定文件中將指定文件中指定指定的變量加載到當(dāng)前工作空間的變量加載到當(dāng)前工作空間 l
6、oad指令:指令: 例子例子:將:將magic.mat載入載入matlab workspace。 code: (save_load_exam.m) load magic.mat disp(magicMat); disp(magicInv); 6.1 文件IO6.1.2 文本文件操作文本文件操作 針對其他常用的文件格式(針對其他常用的文件格式(非非mat文件文件)。)。6.1 文件IO例子例子: 從從excel文件讀取石油價格數(shù)據(jù)文件讀取石油價格數(shù)據(jù),并保存到并保存到mat文件。文件。Code (oil_price_process.m)fnm=oilprice_simple.xls;dat=xl
7、sread(fnm); %讀取對應(yīng)的xls文件year=dat(:,1);pday=dat(:,2);pnow=dat(:,3);save oilprice.mat year pday pnow; 6.1 文件IO6.1.2 低級例程低級例程 底層的文件操作底層的文件操作,包括基本的,包括基本的open、close、read、write。1) 打開文件打開文件 fid = fopen(filename, flag);其中,其中,flag為控制文件讀寫的標(biāo)識符,它的取值可以為為控制文件讀寫的標(biāo)識符,它的取值可以為 * r表示打開的文件進(jìn)行表示打開的文件進(jìn)行讀讀的操作。的操作。 * w表示打開的文
8、件進(jìn)行表示打開的文件進(jìn)行寫寫的操作,若文件不存在則的操作,若文件不存在則創(chuàng)建新的文件。創(chuàng)建新的文件。 6.1 文件IO6.1.3 低級例程低級例程1) 打開文件打開文件 note:1)若能夠成功地打開文件,則)若能夠成功地打開文件,則fid為非負(fù)的整數(shù),為非負(fù)的整數(shù),否則為否則為-1。 2)關(guān)閉文件:)關(guān)閉文件: status = fclose(fid)若函數(shù)運行成功,則若函數(shù)運行成功,則status為為0,否則為,否則為-1。 3) 讀寫數(shù)據(jù)讀寫數(shù)據(jù) MATLAB提供了兩大類低級文件提供了兩大類低級文件I/O函數(shù)進(jìn)行文件內(nèi)容函數(shù)進(jìn)行文件內(nèi)容的讀寫:的讀寫: 1)二進(jìn)制文件讀寫函數(shù)二進(jìn)制文件讀
9、寫函數(shù) 2)文本文件讀寫函數(shù)文本文件讀寫函數(shù) note:底層例程類似:底層例程類似c語言。語言。6.1 文件IO6.1.4 其他類型文件的操作其他類型文件的操作 1)圖像圖像: imread、imwrite等等 2)視頻視頻6.1 文件IO6.1.4 例子例子 例子例子:最簡單的辦法是使用界面導(dǎo)入向?qū)?,打開文件最簡單的辦法是使用界面導(dǎo)入向?qū)В蜷_文件菜單中的導(dǎo)入數(shù)據(jù)而后按提示操作。菜單中的導(dǎo)入數(shù)據(jù)而后按提示操作。Matlab支持的主要數(shù)支持的主要數(shù)據(jù)文件類型和對應(yīng)函數(shù)如下:據(jù)文件類型和對應(yīng)函數(shù)如下: 6.1 文件IOn導(dǎo)入文本文件導(dǎo)入文本文件 文本文件需要具備統(tǒng)一的行列模式,使用分隔符作為數(shù)據(jù)
10、項間隔,這些分隔符包括空格、逗號、tab、分號或其它。數(shù)據(jù)文件可能附帶標(biāo)題行和行列頭標(biāo)簽。 n數(shù)值數(shù)據(jù)數(shù)值數(shù)據(jù) 對于數(shù)值數(shù)據(jù)可以直接使用load函數(shù)裝載,例如my_data.txt中數(shù)據(jù)如下: 1 2 3 4 5 6 7 8 9 10 命令A(yù) = load(my_data.txt)裝載該文本文件數(shù)據(jù)。 如果數(shù)值數(shù)據(jù)使用其它分隔符,可以使用dlmread讀入,假設(shè)my_data.txt中數(shù)據(jù)如下: 7.2;8.5;6.2;6.6 5.4;9.2;8.1;7.2 命令A(yù) = dlmread(my_data.txt, ;)讀入該數(shù)據(jù)。 n包含行列標(biāo)簽的數(shù)值數(shù)據(jù)包含行列標(biāo)簽的數(shù)值數(shù)據(jù) 例如: Grad
11、e1 Grade2 Grade3 78.8 55.9 45.9 99.5 66.8 78.0 89.5 77.0 56.7 fid = fopen(grades.dat, r); grades = textscan(fid, %f %f %f, 3, headerlines, 1); fclose(fid); n包含字符和數(shù)值的混合數(shù)據(jù)包含字符和數(shù)值的混合數(shù)據(jù) n使用textread函數(shù)讀入。它可以按列讀取ascii 文件中的元素,每一列中可能含有不同的數(shù)據(jù)類型。這函數(shù)讀取其他程序生成的數(shù)據(jù)表時非常地有用。n這個命令的形式如下na, b, c, . = textread(filename, f
12、ormat, n)n其中filename 代表要打開的文件的名字,format 是用于每一行數(shù)據(jù)類型的字符串,n 代表要讀取的行數(shù)(如果沒有n,則這個命令將讀完這個文件)。格式化字符串與函數(shù)fprintf 格式化描述的字符串相同。注意輸出參數(shù)的個數(shù)必須與你讀取的列數(shù)相區(qū)配。n例如,假設(shè)文件test_input.dat 包含下列數(shù)據(jù)nJames Jones O+ 3.51 22 YesnSally Smith A+ 3.28 23 NOn這些數(shù)據(jù)用下面的函數(shù)讀取一系列的數(shù)組。nfirst, last, blood, gpa, age, answer = textread(test_input.d
13、at,%s %s %s %f %d %s)n當(dāng)這個函數(shù)被運行時產(chǎn)生如下結(jié)果nfirst =nJamesnSallynlast =nJonesnSmithblood =O+A+gpa =3.51003.2800age =2223answer =Yes導(dǎo)出文本文件導(dǎo)出文本文件 nsave函數(shù) A = 1 2 3 4 ; 5 6 7 8 ; save my_data.out A ASCII dlmwrite函數(shù) dlmwrite(my_data.out,A, ;) nxlsinfo獲得文件信息獲得文件信息 使用命令type, sheets = xlsfinfo(filename)返回文件類型type
14、和工作表信息。如:type, sheets = xlsfinfo(tempdata.xls) nXlswrite導(dǎo)出數(shù)據(jù)導(dǎo)出數(shù)據(jù) d = Time, Temp; 12 98; 13 99; 14 97 命令xlswrite(tempdata.xls, d, Temperatures, E1)將單元格數(shù)組d的數(shù)據(jù)寫出至tempdata.xls文件,新建工作表Temperatures,從該工作表的E1單元格開始寫入。 6.1 文件IO小結(jié):小結(jié):文件文件IO關(guān)注的是數(shù)據(jù)的導(dǎo)入與導(dǎo)出的問題;關(guān)注的是數(shù)據(jù)的導(dǎo)入與導(dǎo)出的問題;Matlab特有的文件格式是特有的文件格式是.mat文件,通過文件,通過sav
15、e load指令指令可以讀寫文件;可以讀寫文件;針對常用的文件格式,比如圖像針對常用的文件格式,比如圖像(bmp/jpg),excel文件文件等等matlab提供了高級例程;提供了高級例程;Matlab提供了從磁盤文件或剪貼簿轉(zhuǎn)載數(shù)據(jù)至工作區(qū)(數(shù)據(jù)導(dǎo)入)和將工作區(qū)變量存 入磁盤文件(數(shù)據(jù)導(dǎo)出)的多種途徑。 6.2 應(yīng)用程序接口Matlab與與c/c+的混合編程:的混合編程: 根據(jù)根據(jù)主程序框架主程序框架的語言類型劃分:的語言類型劃分: a)matlab中調(diào)用中調(diào)用c/c+ 編寫編寫mex文件文件; b)c/c+中調(diào)用中調(diào)用matlab i)matlab計算引擎計算引擎 ii)第三方組件:)第三方組件:matcom iii)com組件組件:新版本的:新版本的matlab的功能。的功能。6.2 應(yīng)用程序接口6.2.1 mex文件文件1)在)在MATLAB中可調(diào)用的中可調(diào)用的C或或Fortran語言程序語言程序稱為稱為MEX文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八下期末考拔高測試卷(3)(解析版)
- 《色彩的聯(lián)想》課件
- 《廉政專題教育講座》課件
- 教育培訓(xùn)行業(yè)前臺接待總結(jié)
- 樂器店前臺崗位職責(zé)總結(jié)
- 2023年-2024年員工三級安全培訓(xùn)考試題附答案【預(yù)熱題】
- 2023年-2024年安全管理人員安全教育培訓(xùn)試題及答案典型題
- 2023年-2024年項目部治理人員安全培訓(xùn)考試題及答案高清
- 1994年安徽高考語文真題及答案
- 1993年福建高考語文真題及答案
- 海域使用分類體系(全)
- 魯教版必修一第二單元第二節(jié)大氣運動——熱力環(huán)流(共28張PPT)
- 解除限制消費申請書
- 汽車整車廠和動力總成廠房火災(zāi)危險性分類
- 7實用衛(wèi)生統(tǒng)計學(xué)總-國家開放大學(xué)2022年1月期末考試復(fù)習(xí)資料-護(hù)理本復(fù)習(xí)資料
- 精品資料(2021-2022年收藏)集團(tuán)各控股子公司董事會議事規(guī)則
- t-橋式起重機(jī)設(shè)計計算書
- 全口義齒印模及頜位關(guān)系記錄ppt課件
- 定點洗車協(xié)議書(共2頁)
- 電除塵器計算
- 桿塔選型(高度、形式、基礎(chǔ))
評論
0/150
提交評論