- MATLAB基礎及應用(第5版)
- 于潤偉 朱曉慧編著
- 1705字
- 2021-03-22 12:33:01
1.5 文件操作
文件操作是一種重要的輸入/輸出方式,即從數據文件讀取數據或將結果寫入數據文件。MATLAB提供了一系列低層輸入/輸出函數,專門用于文件操作。
1.5.1 文件的打開與關閉

1.打開文件
在讀寫文件之前,必須先用fopen函數打開或創建文件,并指定對該文件進行的操作方式。fopen函數的調用格式為:

說明:fid用于存儲文件句柄,如果返回的句柄值大于0,則說明文件打開成功。文件名用字符串形式,表示待打開的數據文件。常見的打開方式如下。
● ′r′:只讀方式打開文件(默認的方式),該文件必須已存在。
● ′r+′:讀寫方式打開文件,打開后先讀后寫。該文件必須已存在。
● ′w′:打開后寫入數據。該文件已存在則更新,不存在則創建。
● ′w+′:讀寫方式打開文件。先讀后寫。該文件已存在則更新,不存在則創建。
● ′a′:在打開的文件末端添加數據。文件不存在則創建。
● ′a+′:打開文件后,先讀入數據再添加數據。文件不存在則創建。
另外,在這些字符串后添加一個t,如′rt′或′wt+′,則將該文件以文本方式打開;如果添加的是b,則以二進制格式打開,這也是fopen函數默認的打開方式。
2.關閉文件
當文件進行完讀、寫等操作后,應及時關閉文件,以免數據丟失。關閉文件用fclose函數,調用格式為:

說明:該函數關閉fid所表示的文件句柄。sta表示關閉文件操作的返回值,若關閉成功,返回0,否則返回-1,通常默認sta。如果要關閉所有已打開的文件用fclose(′all′)。
1.5.2 二進制文件的讀寫操作
1.寫二進制文件
fwrite函數按照指定的數據精度將矩陣中的元素寫入到文件中。其調用格式如下:

說明:COUNT返回所寫的數據元素個數(可缺省),fid 為文件句柄,A 用來存放寫入文件的數據,precision 代表數據精度,常用的數據精度有 char、uchar、int、long、float、double等。默認數據精度為uchar,即無符號字符格式。
【例1-18】 將一個二進制矩陣存入磁盤文件中。

2.讀二進制文件
fread函數可以讀取二進制文件的數據,并將數據存入矩陣。其調用格式為:

說明:A是用于存放讀取數據的矩陣、COUNT是返回所讀取的數據元素個數、fid 為文件句柄、size為可選項,若不選用則讀取整個文件內容;若選用 size,則可以是下列值:N(讀取N個元素到一個列矢量)、[M,N](讀M行N列的數據到M×N的矩陣中,數據按列存放)。precision用于控制所寫數據的精度,其形式與fwrite函數相同。
【例1-19】 將上例數據文件中的前5個數據讀入到矩陣B中。

注意:矩陣在內存中是按列存放的,所以,存入文件的行矢量讀出后,變成了列矢量。在進行文件操作時,一定要小心,必要時可把矩陣轉置。
1.5.3 聲音文件的讀寫操作

1.讀聲音文件
audioread函數可以讀取擴展名為wav、wma、mp3的聲音文件,并按指定格式存入矩陣。其調用格式如下:

說明:其中Y為矩陣,用來存放讀取的聲音數據,矩陣的每一列代表一個單獨的數據通道(立體聲數據被指定為一個具有兩列的矩陣),FS 是返回的采樣頻率,FILE 為包括擴展名的聲音文件。
2.寫聲音文件
audiowrite函數可以將聲音數據按指定格式寫入到文件中(擴展名為wav、wma、mp3等)。其調用格式如下:

說明:其中Y為矩陣,代表準備寫入文件的聲音數據、FS 為采樣頻率(默認時為8000Hz)、FILENAME 為聲音文件名。
【例1-20】 搜索Windows下的聲音文件 ding.wav或使用 Windows 提供的錄音機錄制一段自己的語音(時間控制在1~3s,將文件另存在硬盤上并更名),使用 wavread函數讀入,觀察其采樣頻率和數據位數;將采樣頻率改為8000Hz和數據位數改為8位后,保存到 E 盤并播放該聲音文件。

注意:使用Windows提供的錄音機錄制的聲音文件的擴展名為 wma,采樣頻率為44100Hz。
1.5.4 圖像文件的讀寫操作

1.讀圖像文件
imread函數用于從文件中讀入圖像,圖像文件的格式可以是bmp(Windows位圖文件)、hdf(層次數據格式圖像文件)、jpg或jpeg(壓縮圖像文件)、pcx(Windows畫筆圖像文件)、tif或tiff(標簽圖像格式文件)等。其函數格式如下:

說明:A為無符號8位整數(uint8)矩陣。如果讀入文件為灰度圖像,則 A 為二維矩陣;如果讀入圖像為真彩色RGB圖像,則A為三維矩陣。

說明:map為雙精度浮點數(double),其值在0~1,表示圖像的顏色值。
2.寫圖像文件
imwrite函數用于將圖像寫入文件,圖像格式同imread函數。其函數格式如下:

說明:與imread函數相同。

說明:map表示圖像顏色格式,其他與imread函數相同。
【例1-21】 讀入文件名為cameraman.tif的圖像文件,改文件名為image、改格式為jpg后,存入D盤。

打開D盤,可以看到該圖像文件的圖標。
- Moodle 2.0 E/Learning Course Development
- 基于元胞自動機的城市路網交通流建模與仿真
- 中文版Maya 2012實用教程(第2版)
- Photoshop CC入門與進階
- 中文版Photoshop CC平面設計實用教程
- SPSS統計分析
- Building Websites with PHP/Nuke
- PostgreSQL 9.0 High Performance
- 中望3D從入門到精通
- ASP.NET Core 3從入門到實戰
- 行攝 Photoshop CC后期修片高手之道(第2版)
- Vulkan實戰
- 跟著視頻學Excel數據處理:函數篇
- Photoshop CC 平面設計
- Flash Multiplayer Virtual Worlds