版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、文件輸入輸出一、概述 二、高層I/O函數(shù)三、數(shù)據(jù)導入導游四、底層I/O函數(shù)一、概述一、概述 1、輸入輸出、輸入輸出(I/O) 數(shù)據(jù)輸入和輸出I/O 輸入:從磁盤文件獲得數(shù)據(jù),加載到任務(wù)空間。 輸出:從任務(wù)空間變量保管到文件中。 高層文件和底層文件I/O操作 高層:針對不同的數(shù)據(jù)格式文件,提供不同的I/O函數(shù),有現(xiàn)成的函數(shù)供運用,僅需少量編程。 底層:運用文件標識符可訪問任何類型的數(shù)據(jù)文件,更加靈敏地完成相對特殊的義務(wù),需求復雜編程 數(shù)據(jù)導入導游:數(shù)據(jù)導入用的圖形界面,用于導入知格式的文件和有一定規(guī)那么的ASCII文本文件2 2、二進制文件和文本文件、二進制文件和文本文件 文本文件將文件看作是由
2、字節(jié)(byte)組成的,每個字節(jié)(bit)的最高位都是0,文本文件運用了一個字節(jié)中的七位來表示一切的信息。 二進制文件將字節(jié)中的一切位都用上了。 按照文本方式翻開文件時會進展轉(zhuǎn)換,將每個字節(jié)轉(zhuǎn)換成ASCII碼。 以二進制方式翻開文件時不會進展任何的轉(zhuǎn)換。 進展文本編輯時,編輯的最小單位是字節(jié)。 二進制文件編輯最小單位那么是位(bit)。 MATLAB提供一種特殊的數(shù)據(jù)文件格式MAT文件,這種文件是一種二進制格式文件,擴展名為 .mat,它為MATLAB提供了跨平臺的數(shù)據(jù)交互才干。這些 *.mat 文件之所以可以獨立于各種平臺的緣由是在文件頭帶有設(shè)備的簽名,MATLAB 在載入文件時將檢查這個簽
3、名,假設(shè)發(fā)現(xiàn)文件來源不同于當前的系統(tǒng),那么進展必要的轉(zhuǎn)換。3 3、matmat數(shù)據(jù)文件格式數(shù)據(jù)文件格式二、二、 高層高層I/O函數(shù)函數(shù)MAT文件是MATLAB獨有的文件格式,是MATLAB用戶最常用的數(shù)據(jù)文件格式。在MATLAB中,可以將當前任務(wù)空間中的變量保管成MAT文件,也可以將MAT文件中的數(shù)據(jù)導入到MATLAB的任務(wù)空間中,這兩個過程分別運用save指令和load指令就可以完成。 需求闡明一點, save和load指令不僅可以加載和保管MAT格式的數(shù)據(jù)文件,而且還可以加載普通的文本格式文件。但是在文本數(shù)據(jù)文件中不能包含特殊的文件間隔符。因此,將這兩個指令稱之為操作普通數(shù)據(jù)文件的指令。
4、1、MAT文件的讀寫文件的讀寫save將當前工作空間所有變量保存在當前目錄下文件matlab.mat內(nèi)save filename將當前工作空間中所有的變量保存到指定的文件中save filename var1 var2.將當前工作空間中的變量var1、var2等保存到指定文件中save filename data*(功能同上)其中*為通配符save .option按照option的不同取值保存數(shù)據(jù)save(filename,.)save指令的函數(shù)格式用法save 將當前任務(wù)空間中的變量保管到指定的數(shù)據(jù)文件中,其根本語法為:將當前任務(wù)空間中的變量保管到指定的數(shù)據(jù)文件中,其根本語法為:其中,opt
5、ion可以有如下幾種能夠:-mat保管為二進制的MAT文件格式(默許)-append 在已有的數(shù)據(jù)文件尾部追加數(shù)據(jù)-ascii保管為ASCII文本格式,數(shù)據(jù)按照八位精度保管-ascii -double保管為ASCII文本格式,數(shù)據(jù)按照十六位精度保管-ascii tabs保管為ASCII文本格式,數(shù)據(jù)之間運用制表符作為間隔load 將數(shù)據(jù)文件的數(shù)據(jù)導入到將數(shù)據(jù)文件的數(shù)據(jù)導入到MATLAB的任務(wù)空間,的任務(wù)空間,其根本的語法為:其根本的語法為:留意:運用load指令加載數(shù)據(jù)文件時,數(shù)據(jù)文件只需保管在MATLAB的搜索途徑上即可,同時假設(shè)不指明數(shù)據(jù)文件的擴展名,那么數(shù)據(jù)文件默許按照二進制的MAT文件
6、格式加載,否那么都按照文本格式文件加載。load將matlab.mat文件中所有的變量加載到當前的工作空間load filename將指定文件中所有的變量加載到當前的工作空間load filename var1 var2 .將指定文件中的指定變量加載到當前工作空間load filename -ascii將數(shù)據(jù)文件按照文本格式加載load filename -mat將數(shù)據(jù)文件按照MAT文件格式加載S = load(.)load指令的函數(shù)格式用法例例: save和和load指令例如。指令例如。clear allx1 = 2; x2 = 3; x3 = 4; y1=0;save xdata x1 x
7、2save xdata2.dat x* -asciiclear allload xdata執(zhí)行執(zhí)行l(wèi)oad 命令后,請查看內(nèi)存中能否有命令后,請查看內(nèi)存中能否有相應的變量相應的變量執(zhí)行執(zhí)行l(wèi)oad 命令后,請查看當命令后,請查看當前任務(wù)目錄,確認能否生成了相前任務(wù)目錄,確認能否生成了相應的文件。應的文件。2、文本文件的讀寫、文本文件的讀寫 csvread讀取以逗號作為間隔符的文本文件csvwrite保存數(shù)據(jù)到文本文件,逗號作為間隔符dlmread按照指定的間隔符讀取文本文件的數(shù)據(jù)dlmwrite按照指定間隔符將數(shù)據(jù)寫入文本文件textread按照指定的格式從文本文件中讀取數(shù)據(jù)strread按照
8、指定的格式從字符串中讀取數(shù)據(jù)textscan按照指定的格式從文本文件、字符串中讀取數(shù)據(jù)(1) csvreadM = csvread(filename)將文件 filename 中的數(shù)據(jù)讀入,并且保存為 M,filename 中只能包含數(shù)字,并且數(shù)字之間以逗號分隔。M 是一個數(shù)組,行數(shù)與 filename 的行數(shù)相同,列數(shù)為 filename 列的最大值,對于元素不足的行,以 0 補充。M = csvread(filename, row, col)讀取文件 filename 中的數(shù)據(jù),起始行為 row,起始列為 col,需要注意的是,此時的行列從 0 開始。M = csvread(filenam
9、e, row, col, range)讀取文件 filename 中的數(shù)據(jù),起始行為 row,起始列為 col,讀取的數(shù)據(jù)由數(shù)組 range 指定,range 的格式為:R1 C1 R2 C2,其中 R1、C1 為讀取區(qū)域左上角的行和列,R2、C2為讀取區(qū)域右下角的行和列(2)dlmread M = dlmread(filename) M = dlmread(filename, delimiter) M = dlmread(filename, delimiter, R, C) M = dlmread(filename, delimiter, range)其中參數(shù) delimiter 用于指定文
10、件中的分隔符,其他參數(shù)的意義與 csvread 函數(shù)中參數(shù)的意義一樣。dlmread 函數(shù)與 csvread 函數(shù)的差別在于,dlmread 函數(shù)在讀入數(shù)據(jù)時可以指定分隔符,不指定時默許分隔符為逗號。(3)dlmwritedlmwrite(filename, M),將矩陣 M 的數(shù)據(jù)寫入文件 filename 中,以逗號分隔;dlmwrite(filename, M, D),將矩陣 M 的數(shù)據(jù)寫入文件 filename 中,采用指定的分隔符分隔數(shù)據(jù),假設(shè)需求 tab 鍵,可以用“t指定;dlmwrite(filename, M, D, R, C),指定寫入數(shù)據(jù)的起始位置;dlmwrite(fi
11、lename, M, attribute1, value1, attribute2, value2, .),指定恣意數(shù)目的參數(shù),可以指定的參數(shù)見下表;dlmwrite(filename, M, -append),假設(shè) filename 指定的文件存在,在文件后面寫入數(shù)據(jù),不指定時那么覆蓋原文件;dlmwrite(filename, M, -append, attribute-value list),敘寫文件,并指定參數(shù)。參數(shù)名參數(shù)名功能功能delimiter用于指定分隔符用于指定分隔符newline用于指定換行符,可以選擇用于指定換行符,可以選擇“pc”或者或者“unix”roffset行偏差
12、,指定文件第一行的位置,行偏差,指定文件第一行的位置,roffset 的基數(shù)為的基數(shù)為 0coffset列偏差,指定文件第一列的位置,列偏差,指定文件第一列的位置,coffset 的基數(shù)為的基數(shù)為 0precision指定精確度,可以指定精確維數(shù),或者采用指定精確度,可以指定精確維數(shù),或者采用 c 語言的格式,如語言的格式,如“%10.5f”例:有一個例:有一個text_test.txt文件可從課程網(wǎng)頁下載,文件可從課程網(wǎng)頁下載,包含包含60000行數(shù)據(jù),每行兩個數(shù)據(jù)以空格分隔,前面行數(shù)據(jù),每行兩個數(shù)據(jù)以空格分隔,前面的為的為x,后面的為,后面的為y要留意的是,要留意的是,y的后面也有一個的后
13、面也有一個空格。請繪制出這些數(shù)據(jù)在直角坐標系中的圖形??崭?。請繪制出這些數(shù)據(jù)在直角坐標系中的圖形。A = dlmread(text_test.txt, ); plot(A(:,1),A(:,2)3、Excel文件的讀寫文件的讀寫 .xlsxlsfinfo獲取文件類型等基本信息xlsread讀取Excel電子表格文件的數(shù)據(jù)xlswrite寫入Excel電子表格文件的數(shù)據(jù)練習:練習:1、查閱、查閱matlab的協(xié)助系統(tǒng),了解上面這些函數(shù)的根的協(xié)助系統(tǒng),了解上面這些函數(shù)的根本用法。本用法。2、新建一、新建一excel任務(wù)簿,輸入一些數(shù)據(jù)并存盤,封任務(wù)簿,輸入一些數(shù)據(jù)并存盤,封鎖鎖excel。3、利用
14、、利用xlsread將將excel任務(wù)簿中的數(shù)據(jù)導入到任務(wù)簿中的數(shù)據(jù)導入到matlab中。中。4、檢查數(shù)據(jù)導入能否正確,然后對數(shù)據(jù)進展一些修、檢查數(shù)據(jù)導入能否正確,然后對數(shù)據(jù)進展一些修正,并將修正后的數(shù)據(jù)利用正,并將修正后的數(shù)據(jù)利用xlswrite函數(shù)寫入原先的函數(shù)寫入原先的excel任務(wù)簿文件。任務(wù)簿文件。6、用、用excel翻開任務(wù)簿文件,查看數(shù)據(jù)能否被修正。翻開任務(wù)簿文件,查看數(shù)據(jù)能否被修正。4、圖像文件的讀寫、圖像文件的讀寫函數(shù)函數(shù)說明imformats顯示matlab支持的圖形格式列表及相關(guān)信息imfinfo獲取圖形文件信息imread讀取圖形文件imwrite寫入圖形文件imsho
15、w顯示圖片image顯示圖片對象以image_test.jpg為例(可從課程網(wǎng)頁下載)%讀取并顯示圖片Img = imread(image_test.jpg);imshow(Img);%修正圖片、顯示、存盤Img(:,:,3)=0;imshow(Img)imwrite(Img,image_new.jpg)5、其他格式文件的讀寫、其他格式文件的讀寫除了前面講述的幾種數(shù)據(jù)文件類型以外,MATLAB還可以加載其他很多不同類型的數(shù)據(jù)文件,例如聲音、視頻等二進制數(shù)據(jù)文件??梢枣I入doc fileformats 命令來獲取MATLAB可以讀入的二進制文件類型以及相應的加載函數(shù)信息。三、數(shù)據(jù)導入導游三、數(shù)據(jù)
16、導入導游 MATLAB為了便于用戶導入數(shù)據(jù)還提供了導入數(shù)據(jù)導游,導入數(shù)據(jù)導游是一個圖形用戶界面,可以協(xié)助用戶導入各種類型的數(shù)據(jù),這樣,就不用經(jīng)過編寫程序就可以把數(shù)據(jù)導入到MATLAB的任務(wù)空間。啟動導入數(shù)據(jù)導游有可以運用不同的方法:(1) 在MATLAB命令行中,鍵入指令uiimport。或:(2) 經(jīng)過菜單命令,執(zhí)行“File菜單下的“Import Data命令。(3) 執(zhí)行MATLAB的“Start菜單中“MATLAB子菜單下的“Import Wizard命令。uiimport 命令啟動數(shù)據(jù)導入導游的初始畫面命令啟動數(shù)據(jù)導入導游的初始畫面 單擊“Browse按鈕,在彈出的對話框中選擇需求加
17、載的數(shù)據(jù)文件選擇需求加載的數(shù)據(jù)文件 用鼠標選擇需求翻開的文件,然后單擊“翻開按鈕之后,數(shù)據(jù)導入導游嘗試分析并加載數(shù)據(jù)文件,并且將可以加載的數(shù)據(jù)顯示在圖形界面中。 加載了數(shù)據(jù)的數(shù)據(jù)導入對話框 可以經(jīng)過“data、“textdata和“colheaders標簽頁察看導入的數(shù)據(jù),假設(shè)導入正確無誤后,單擊“Next按鈕選擇適宜的數(shù)據(jù)分隔符,之后單擊“Next按鈕接下來選擇數(shù)據(jù)變量,之后就可以單擊“Finish按鈕完成整個數(shù)據(jù)導入的過程,這時在MATLAB的任務(wù)空間中,將出現(xiàn)導入的變量。還可以點擊變量名,修正還可以點擊變量名,修正變量稱號變量稱號練習:練習:運用數(shù)據(jù)導入導游,把運用數(shù)據(jù)導入導游,把tex
18、t_test.txt文件中文件中的數(shù)據(jù)導入的數(shù)據(jù)導入matlab。四、底層四、底層I/O函數(shù)函數(shù) 1、翻開、封鎖文件 2、讀寫數(shù)據(jù) 3、文件位置指針r打開的文件進行讀操作。w打開的文件進行寫操作,若文件不存在則創(chuàng)建新的文件。 a打開的文件進行追加數(shù)據(jù)操作,若文件不存在則創(chuàng)建新的文件。r+打開的文件既可以進行寫操作,也可以進行讀操作。w+打開的文件既可以進行寫操作,也可以進行讀操作,若文件不存在則創(chuàng)建新的文件。a+打開的文件既可以進行寫操作、讀操作,也可以進行數(shù)據(jù)追加操作,若文件不存在則創(chuàng)建新的文件。fopen翻開文件翻開文件fid = fopen(filename, flag);flag為控制
19、文件讀寫的標識符,它的取值可以為為控制文件讀寫的標識符,它的取值可以為假設(shè)可以勝利地翻開文件,那么前往值fid為非負整數(shù),否那么為-11、 翻開、封鎖文件翻開、封鎖文件 fclose封鎖曾經(jīng)翻開的文件封鎖曾經(jīng)翻開的文件status = fclose(fid)封鎖文件之后,fid變量依然存在于任務(wù)空間中,但是對fid再進展文件I/O操作是錯誤的。假設(shè)函數(shù)運轉(zhuǎn)勝利,那么status為0,否那么為-1。 2、 讀寫數(shù)據(jù)讀寫數(shù)據(jù) 函 數(shù)說 明輸 出fscanf從文件中讀取格式化的輸入數(shù)據(jù)矩陣fprintf向文件寫入格式化的輸出寫入數(shù)據(jù)文件的數(shù)據(jù)個數(shù)fgetl讀取文本文件的一行數(shù)據(jù),不包含文本的結(jié)束符字
20、符串fgets讀取文本文件的一行數(shù)據(jù),包含文本的結(jié)束符字符串fread讀取文件的二進制數(shù)據(jù)數(shù)據(jù)矩陣和讀入的數(shù)據(jù)個數(shù)fwrite寫入文件的二進制數(shù)據(jù)寫入的字節(jié)數(shù)翻開文件之后就要進展文件內(nèi)容的讀寫了,MATLAB提供了兩大類低級文件I/O函數(shù)進展文件內(nèi)容的讀寫二進制文件讀寫函數(shù)和文本文件讀寫函數(shù)。fprintf :格式化輸出:格式化輸出 count = fprintf( fid, format, A, . )該語句將矩陣 A 及后面其他參數(shù)中數(shù)字的實部以 format 指定的格式寫入到 fid 指定的文件中,前往寫入數(shù)據(jù)的字節(jié)數(shù)。參數(shù) format 由 % 開頭,如下所示:(1)標志flag,為可
21、選部分;(2)寬度和精度指示,為可選部分;(3)轉(zhuǎn)換字符,為必需部分。(1)標志:用于控制輸出的對齊方式,可以選擇:標志:用于控制輸出的對齊方式,可以選擇: -(負號)在參數(shù)左側(cè)進行判別%-5.2d+ (正號)在數(shù)字前添加符號%+5.2d空格在數(shù)字前插入空格% 5.2d0在數(shù)字前插入 0%05.2d(2)寬度和精度指示:可以經(jīng)過數(shù)字指定輸出數(shù)字的寬寬度和精度指示:可以經(jīng)過數(shù)字指定輸出數(shù)字的寬度及精度,格式為:度及精度,格式為:%6f指定數(shù)字的寬度;%6.2f指定數(shù)字的寬度及精度;%.2f指定數(shù)字的精度。轉(zhuǎn)換字符意義%c輸出單個字符%d輸出有符號十進制數(shù)%e采用指數(shù)格式輸出,采用小寫字母 e,如
22、:3.1415e+00%E采用指數(shù)格式輸出,采用大寫字母 E,如:3.1415E+00%f以定點數(shù)的格式輸出%g%e 及 %f 的更緊湊的格式,不顯示數(shù)字中無效的 0%G與 %g 相同,但是使用大寫字母 E%i有符號十進制數(shù)%o無符號八進制數(shù)%s輸出字符串%u無符號十進制數(shù)%x十六進制數(shù)(使用小寫字母 af)%X十六進制數(shù)(使用大寫字母 AF)(3)轉(zhuǎn)換字符轉(zhuǎn)換字符(4)本義符:轉(zhuǎn)換字符用于指定輸出的符號,可以選擇本義符:轉(zhuǎn)換字符用于指定輸出的符號,可以選擇的內(nèi)容如表所示。的內(nèi)容如表所示。轉(zhuǎn)義符功能b退格f表格填充n換行符r回車ttab,反斜線 或 ,單引號%,百分號例:用 fprintf 函
23、數(shù)在顯示器上輸出字符串。fid取1 表示顯示器假設(shè)不提供fid,也默以為1用兩個單引號顯示單引號運用 n 進展換行。 fprintf(1,Its Friday.n)Its Friday.fprintf 練習:練習:a = 1:10;11:20fprintf(%dn,a)fprintf(%2dn,a)fprintf(%02dn,a)fprintf(%+2d,a)fprintf(%02d %02dn,a)fprintf(%02d %02d %02d %02dn,a)先想一想各條fprintf語句在屏幕上的輸出是什么?然后再看matlab的輸出結(jié)果,與他想的一樣嗎?fid = fopen(test.
24、txt,wt)fprintf(fid,%02d %02d %02d %02d %02dn,a)fclose(fid)這條語句是輸出到當前任務(wù)目錄下的這條語句是輸出到當前任務(wù)目錄下的test.txt文件中文件中fscanf:格式化輸入:格式化輸入 array = fscanf(fid, format) array, count = fscanf(fid, format, size) fid: 所要讀取的文件的文件標識format:控制如何讀取的格式字符串,array:接受數(shù)據(jù)的數(shù)組,count:前往從文件讀取的變量的個數(shù)。size:指定從文件讀取數(shù)據(jù)的數(shù)目,可取: n 準確地讀取n個值。執(zhí)行完相應的語句后,array將是一個包含有n個值的列向量 Inf 讀取文件中一切值。執(zhí)行完相應的語句后,array將是一個列向量,包含有從文件一切值。 m,n 從文件中準確定地讀取mn個值,array是一個mn的數(shù)組。 fscanf 舉例:舉例:在前面fprintf函數(shù)的練習中,在當前任務(wù)目錄下生成了一個test.txt文件,可以運用文本編輯器,如記事本查看其詳細內(nèi)容。現(xiàn)運用fscanf函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 疫情防護2025年度企業(yè)員工培訓與心理咨詢合同3篇
- 二零二五年度城市綠化養(yǎng)護勞務(wù)分包合同書4篇
- 二零二五年度城市住宅出售協(xié)議書(含裝修及家具配置)4篇
- 二零二五年鍋爐維修工程承包與環(huán)保驗收協(xié)議3篇
- 2024手繪藝術(shù)作品拍賣合同協(xié)議3篇
- 安徽省二零二五年度住房租賃市場租賃糾紛處理合同
- 2025年護林員勞動合同書(含森林資源保護培訓)3篇
- 2025版土地經(jīng)營權(quán)租賃與農(nóng)業(yè)產(chǎn)業(yè)扶貧合同3篇
- 二零二五年度高端房產(chǎn)交易意向金協(xié)議4篇
- 二零二五年度體育場館安保人員派遣管理協(xié)議3篇
- 消防產(chǎn)品目錄(2025年修訂本)
- 地方性分異規(guī)律下的植被演替課件高三地理二輪專題復習
- 光伏項目風險控制與安全方案
- 9.2提高防護能力教學設(shè)計 2024-2025學年統(tǒng)編版道德與法治七年級上冊
- 催收培訓制度
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理體系 審核與認證機構(gòu)要求》中文版(機翻)
- 2024年廣東省高考地理真題(解析版)
- 2024高考物理廣東卷押題模擬含解析
- 人教版五年級上冊數(shù)學簡便計算大全600題及答案
- GB/T 15945-1995電能質(zhì)量電力系統(tǒng)頻率允許偏差
- GB 32311-2015水電解制氫系統(tǒng)能效限定值及能效等級
評論
0/150
提交評論