1629. 按鍵持續時間最長的鍵
1489
2025-04-01
1 MAT文件
是MATLAB使用的一種特有的二進制數據文件。MAT文件可以包含一個或者多個MATLAB 變量。MATLAB通常采用MAT文件把工作空間的變量存儲在磁盤里,在MAT文件中不僅保存各變量數據本身,而且同時保存變量名以及數據類型等。所以在MATLAB中載入某個MAT文件后,可以在當前MATLAB工作空間完全再現當初保存該MAT 文件時的那些變量。這是其他文件格式所不能的。同樣,用戶也可以使用MAT文件從MATLAB環境中導出數據。MAT文件提供了一種更簡便的機制在不同操作平臺之間移動MATLAB數據。
在MATLAB環境中,通常使用load和save兩個命令進行 MAT 文件的讀和寫。在默認情況下,這兩個命令以 MAT 文件格式處理文件
2 load 函數的使用
load函數可以從MAT文件中讀取數據,例如要讀取mymat.dat文件,可以直接執行命令load mymat.dat,因為給出要讀取的文件的后綴名是MAT,因此命令則以MAT文件格式讀取數據,否則將以文本文件讀取數據。命令中的文件名可以包含單引號,也可以不包含,也就是說該函數也可以這樣調用:load 'mymat.mat' 。
load 函數還可以指定只讀取文件中的某幾個變量,只需在文件名之后列出想要讀取的變量的變量名就可以了,變量名也可以使用通配符。
比如命令load mymat.mat y*,執行結果就是將文件中所有以y開頭的變量讀取出來。
load還有一種函數形式的調用方式。這種調用方式就要求文件名必須是字符串,比如要導入mymat.mat文件,那么函數形式的調用必須是s =load('mymat.mat')。
例子:
A = ones(3); B = eye(3,4); C = rand(3); save lx; clear; clc
這時,變量A B C 均被存入文件lx中。
S = load('lx', 'A', 'B');
A
顯示:
A =
1 1 1
1 1 1
1 1 1
3 save函數的使用
save 函數的功能是把當前MATLAB工作空間的一個或多個變量存寫到外部文件。在默認情況下,save 函數以MAT格式存寫數據。若在命令中直接調用該函數,不帶任何參數,執行結果是把MATLAB工作空間的所有變量保存到系統默認的matlab.mat文件中。當然,帶上文件名參數,就可以將當前工作空間中的所有變量存寫在指定的 MAT文件中。
如果用戶需要保存指定的某幾個變量,只需在文件名參數后,列出要保存的文件名即可。比如,命令save mymat.matx,y,z執行后的結果就是將當前工作空間中的變量 x,y,z保存到mymat.mat文件中,要求x,y,z是當前工作空間中已經存在的變量。
此外,還有幾個與mat文件操作相關的函數
matopen 打開mat文件
matclose 關閉mat文件
magetfp 取得mat文件的C語言句柄
matGetArray 取得一個數組
4 在普通的C/C++程序中讀寫MAT文件
使用MATLAB 提供的MAT 文件接口函數
在C/C++程序中有兩種方式可以讀取MAT文件數據。一種是利用MATLAB提供的有關MAT文件的編程接口函數。MATLAB的庫函數中包含了MAT文件接口函數庫,其中有各種對MAT文件進行讀寫的函數,都是以mat開頭的函數。如表2-10所示。
C語言中的MAT文件讀寫函數
MAT 函 數
功 能
matOpen
打開 MAT 文件
matClose
關閉 MAT 文件
matGetDir
從 MAT 文件中獲得 MATLAB 陣列的列表
matGetFp
獲得一個指向MAT 文件的ANSI C 文件指針
matGetVariable
從MAT文件中讀取MATLAB陣列
matPutVariable
寫MATLAB陣列到MAT文件
matGetNextVariable
從MAT文件中讀取下一個MATLAB陣列
matDeleteVariable
從MAT文件中刪去下一個MATLAB陣列
matPutVariableAsGlobal
從MATLAB陣列寫入到MAT文件中
matGetVariableInfo
從MAT文件中讀取MATLAB陣列頭信息
matGetNextVariableInfo
從MAT文件中讀取下一個MATLAB陣列頭信息
5 在C/C++程序中讀取MAT文件內容
另外一種在C/C++程序中讀寫 MAT 文件的方法是根據 MAT 文件結構,以二進制格式在C/C++中讀入文件內容,然后解析文件內容,從而獲得文件中保存的MATLAB數據。因為MAT文件格式是公開的,用戶只要在找到安裝路徑下的一個名為matfile_format,pdf的文件,就可以詳細了解 MAT 文件結構,從而在C/C++程序中以二進制格式讀取文件內容,解析以后得到文件中保存的數據。
C++ MATLAB
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。