matlab支持對多種文件格式進行導入 同時也支持低級IO api進行訪問
標準文件格式
文本、電子表格、圖像、科學數據、音頻和視頻、XML 文檔de
標準文件格式功能從常見文件格式中讀取數據,例如 Microsoft® Excel® 電子表格、文本、圖像、音頻和視頻,以及科學數據格式。有關詳細信息,請參閱支持的導入和導出文件格式。
您可以通過在主頁選項卡上選擇導入數據來讀取這些格式中的許多格式。
-
文本文件
分隔文本文件和格式化文本文件
讀寫分隔文本文件和格式化文本文件(包括
.csv
和.txt
文件)中的數值數據和非數值數據。使用導入工具以交互方式導入文本文件數據。使用該頁面中的函數以編程方式導入或導出文本數據。要比較導入文本文件的主要方法,請參閱導入文本文件的方式。
分隔文本文件和格式化文本文件 -
電子表格
Microsoft® Excel® 電子表格
讀寫電子表格文件(包括
.xls
和.xlsx
文件)中的數據。使用導入工具以交互方式導入電子表格數據。使用該頁面中的函數以編程方式導入或導出電子表格數據。要比較導入電子表格文件的主要方法,請參閱導入電子表格的方式。函數
- 圖像
JPEG、TIFF、PNG 和其他格式 - 科學數據
NetCDF、HDF、FITS 和 CDF 格式 - 音頻和視頻
讀取和寫入視頻和音頻文件;錄製和播放音頻 - XML 文檔
可擴展標記語言文檔
具體支持的格式和使用的函數在這裏https://ww2.mathworks.cn/help/matlab/import_export/supported-file-formats.html
低級文件IO Low-Level File I/O
以字節形式對文件進行讀寫
https://ww2.mathworks.cn/help/matlab/low-level-file-i-o.html?lang=en
Functions
fclose |
Close one or all open files |
feof |
Test for end of file |
ferror |
File I/O error information |
fgetl |
Read line from file, removing newline characters |
fgets |
Read line from file, keeping newline characters |
fileread |
Read contents of file as text |
fopen |
Open file, or obtain information about open files |
fprintf |
Write data to text file |
fread |
Read data from binary file |
frewind |
Move file position indicator to beginning of open file |
fscanf |
Read data from text file |
fseek |
Move to specified position in file |
ftell |
Current position |
fwrite |
Write data to binary file
|
Examples and How To
Import Text Data Files with Low-Level I/O
Low-level file I/O functions allow the most control over reading or writing data to a file.
導入文本文件的方式
根據數據格式和 MATLAB® 工作區中所需的數據類型,選擇一種導入方法。以交互或編程方式導入文本文件。
要以交互方式導入數據,請使用導入工具。可以生成代碼對多個相似文件重複該操作。導入工具支持文本文件,包括擴展名爲 .txt
、.dat
、.csv
、.asc
、.tab
和 .dlm
的文件。這些文本文件可以是非矩形文件,可以有行和列標題,如下圖所示。這些文件中的數據可以是數值和非數值文本的組合,可以由一個或多個字符分隔。
要以編程方式從文本文件中導入數據,請使用導入函數。大多數針對文本文件的導入函數要求每一行數據都具有相同的列數,這樣可以指定要導入的數據範圍。
採用以下方法之一導入文本文件。
導入方法 |
說明 |
有關示例,請參閱... |
---|---|---|
將文件或某一範圍的數據導入到列向量、矩陣、元胞數組或表。可以生成代碼對多個相似文件重複該操作。 |
||
將列向數據導入到矩陣、變量或元胞數組。 |
||
將 對數據導入施加更多控制。例如,選擇變量,以導入或處理包含缺失數據或存在導致錯誤的數據的行。 |
從文本文件導入混合數據塊 | |
將列向數據導入到表或時間表中。 |
||
將 對數據導入施加更多控制。例如,選擇變量,以導入或處理包含缺失數據或存在導致錯誤的數據的行。 |
||
TabularTextDatastore (使用 read 或 readall 函數) |
導入一個或多個列向的文本文件。每個文件都可以很大,無需加載到內存中。 |
|
將非矩形或任意格式的文本文件導入到元胞數組。 |
textscan
從文本文件或字符串讀取格式化數據
語法
C = textscan(fileID,formatSpec)
C = textscan(fileID,formatSpec,N)
C = textscan(chr,formatSpec,N)
有關導入具有更復雜格式的文件的信息,請參閱使用低級 I/O 導入文本數據文件。
使用低級 I/O 導入文本數據文件
概述
通過低級文件 I/O 函數,可以最大程度地控制文件數據的讀取和寫入。但是,相對於更易於使用的高級函數,例如 importdata
,這些低級函數要求指定更爲詳細的文件信息。有關讀取文本文件的高級函數的詳細信息,請參閱導入文本文件的方式。
如果高級函數無法導入數據,請使用下列函數之一:
-
fscanf
,讀取文本或 ASCII 文件(即可以在文本編輯器中查看的文件)中的格式化數據。有關詳細信息,請參閱讀取格式化模式的數據。 -
fgetl
和fgets
,一次讀取文件中的一行,其中每一行通過換行符分隔。有關詳細信息,請參閱逐行讀取數據。 -
fread
,讀取從相應字節或位級開始的數據流。有關詳細信息,請參閱通過低級 I/O 導入二進制數據。
有關其他信息,請參閱:
-
檢測文件末尾 (EOF)
當一次讀取數據的一部分時,可以使用
feof
檢查是否已到達文件的末尾。當文件指針位於文件末尾時,feof
返回值1
。否則,將返回0
。 -
使用 fgetl 和 fgets 測試 EOF
如果在控制循環中使用
fgetl
或fgets
,feof
並不始終是檢測文件末尾的最佳方式。作爲備選方法,可以考慮檢查fgetl
或fgets
返回的值是否爲字符向量。 -
使用不同的字符編碼打開文件
編碼方案支持特定字母所需的字符,例如日語或歐洲語言字符。常見的編碼方案包括 US-ASCII 或 UTF-8。
如果您不指定編碼方案,
fopen
將使用系統的默認編碼打開文件進行處理。要確定默認編碼方案,請打開文件,並再次使用以下語法調用fopen
:[filename, permission, machineformat, encoding] = fopen(fid);
如果在打開文件時指定了編碼方案,以下函數將應用該方案:
fscanf
、fprintf
、fgetl
、fgets
、fread
和fwrite
。有關支持的編碼方案的完整列表以及用於指定編碼的語法,請參閱
fopen
參考頁。
Import Binary Data with Low-Level I/O
Low-level file I/O functions allow the most direct control over reading or writing data to a file.
Export to Text Data Files with Low-Level I/O
This example shows how to create text files, including combinations of numeric and character data and nonrectangular files, using the low-level fprintf
function.
Export Binary Data with Low-Level I/O
Low-level file I/O functions allow the most direct control over reading or writing data to a file.
Concepts
MATLAB® import options for various data formats
導入工具
從文件導入數據https://ww2.mathworks.cn/help/matlab/ref/importtool-app.html
說明
通過導入工具,您可以從電子表格文件、分隔文本文件和等寬的文本文件中預覽和導入數據。您能夠以交互方式選擇要導入的數據並重用工具生成的腳本或函數以導入其他類似文件。
打開 導入工具 App
-
MATLAB® 工具條:在主頁選項卡中的變量部分中,點擊導入數據。
-
MATLAB 命令提示符:輸入
uiimport(
,其中filename
)filename
是用於指定文本或電子表格文件名稱的字符向量。
通過低級 I/O 導入二進制數據
用於導入數據的低級函數https://ww2.mathworks.cn/help/matlab/import_export/importing-binary-data-with-low-level-i-o.html
通過低級文件 I/O 函數,可以最大程度地直接控制對文件數據的讀取和寫入。但是,相對於更易於使用的高級函數,這些低級函數要求指定更爲詳細的文件信息。有關高級函數及其支持的文件格式的完整列表,請參閱支持的導入和導出文件格式。
如果高級函數無法導入數據,請使用下列函數之一:
-
fscanf
,讀取文本或 ASCII 文件(即可以在文本編輯器中查看的文件)中的格式化數據。有關詳細信息,請參閱讀取格式化模式的數據。 -
fgetl
和fgets
,一次讀取文件中的一行,其中每一行通過換行符分隔。有關詳細信息,請參閱逐行讀取數據。 -
fread
,讀取從相應字節或位級開始的數據流。有關詳細信息,請參閱 讀取文件中的二進制數據。
JSON 格式
JavaScript® 對象表示法格式https://ww2.mathworks.cn/help/matlab/json-format.html?s_tid=CRUX_lftnav
函數
jsondecode |
解碼 JSON 格式的文本 |
jsonencode |
基於結構化 MATLAB 數據創建 JSON 格式的文本 |
支持的導入和導出文件格式
下表顯示了可以從 MATLAB® 應用程序導入和導出的文件格式。
除了表中的函數以外,還可以使用導入工具,以交互方式導入文本或電子表格文件格式。
文件內容 |
擴展名 |
說明 |
導入函數 |
導出函數 |
---|---|---|---|---|
MATLAB 格式化數據 |
MAT |
保存的 MATLAB 工作區 |
||
訪問 MATLAB 工作區中的部分變量 |
matfile |
matfile |
||
文本 |
任意文本,包括: |
逗號分隔的數字 |
readmatrix |
|
分隔數字 |
||||
分隔數字或者文本和數字混合 |
無 | |||
列向分隔數字或者文本和數字混合 |
||||
電子表格 |
XLS XLSB(僅限安裝了 Windows® 版 Microsoft® Excel® 的系統) XLTM(僅導入) ODS(僅限安裝了 Windows 版 Microsoft Excel 的系統) |
工作表或電子表格範圍中的列向數據 |
||
可擴展標記語言 |
XML |
XML 格式化文本 |
||
Data Acquisition Toolbox™ 文件 |
DAQ |
Data Acquisition Toolbox |
無 | |
科學數據 |
CDF |
常用數據格式 (CDF) |
請參閱常用數據格式 (CDF) |
請參閱 |
FITS |
普適圖像傳輸系統 |
請參閱FITS 文件 |
請參閱FITS 文件 |
|
HDF |
分層數據格式第 4 版或 HDF-EOS 第 2 版 |
請參閱HDF4 文件 |
請參閱HDF4 文件 |
|
H5 |
HDF 或 HDF-EOS 第 5 版 |
請參閱HDF5 文件 |
請參閱HDF5 文件 |
|
NC |
網絡通用數據格式 (netCDF) |
請參閱NetCDF 文件 |
請參閱NetCDF 文件 |
|
圖像 |
BMP |
Windows 位圖 |
||
GIF |
圖形交換格式 |
|||
HDF |
分層數據格式 |
|||
JPEG |
聯合圖像專家組 |
|||
JP2 |
JPEG 2000 |
|||
PBM |
可移植位圖 | |||
PCX |
畫筆 |
|||
PGM |
可移植灰度圖 | |||
PNG |
可移植網絡圖形 |
|||
PNM |
可移植圖 |
|||
PPM |
可移植像素圖 |
|||
RAS |
Sun™ 光柵 |
|||
TIFF |
標記圖像文件格式 |
|||
XWD |
X 窗口轉儲 |
|||
CUR |
Windows 光標資源 |
無 | ||
ICO |
Windows 圖標資源 |
|||
音頻(所有平臺) |
AU |
NeXT/Sun 聲音 |
||
AIFF |
音頻交換文件格式 |
|||
AIFC |
帶壓縮編碼的音頻交換文件格式 |
|||
FLAC |
免費的無損壓縮音頻編碼 |
|||
OGG |
Ogg Vorbis |
|||
WAV |
Microsoft WAVE 聲音 |
|||
音頻 (Windows) |
M4A |
MPEG-4 |
audioread |
audiowrite |
任意 |
Microsoft Media Foundation 支持的格式 |
audioread |
無 | |
音頻 (Mac) |
M4A |
MPEG-4 |
audioread |
audiowrite |
音頻 (Linux®) |
任意 |
GStreamer 支持的格式 |
audioread |
無 |
視頻(所有平臺) |
AVI |
音頻視頻交叉存取格式 |
||
MJ2 |
Motion JPEG 2000 |
|||
視頻 (Windows) |
MPG |
MPEG-1 |
VideoReader |
無 |
ASF |
Windows Media® |
|||
任意 |
Microsoft DirectShow® 支持的格式 |
|||
視頻(Windows 7 或更高版本) |
MP4 |
MPEG-4 |
VideoReader |
VideoWriter |
MOV |
QuickTime |
VideoReader |
無 | |
任意 |
Microsoft Media Foundation 支持的格式 |
|||
視頻 (Mac) |
MP4 |
MPEG-4 |
VideoReader |
VideoWriter |
MPG |
MPEG-1 |
VideoReader |
無 | |
MOV |
QuickTime |
|||
任意 |
QuickTime 支持的格式,包括 |
|||
視頻 (Linux) |
任意 |
安裝的 GStreamer 插件支持的格式,包括 |
VideoReader |
無 |
三角剖分 |
STL |
立體光刻 | stlread |
stlwrite |
可以使用 RESTful 或 WSDL 等 Web 服務來讀取和寫入 Internet 媒體類型格式的數據,例如 JSON、XML、圖像或文本。有關詳細信息,請參閱: