Matlab文件操作 txt 二進制 csv XML JSON HDF5 圖像 音頻 視頻等

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 的文件。這些文本文件可以是非矩形文件,可以有行和列標題,如下圖所示。這些文件中的數據可以是數值和非數值文本的組合,可以由一個或多個字符分隔。

要以編程方式從文本文件中導入數據,請使用導入函數。大多數針對文本文件的導入函數要求每一行數據都具有相同的列數,這樣可以指定要導入的數據範圍。

採用以下方法之一導入文本文件。

導入方法

說明

有關示例,請參閱...

導入工具 

將文件或某一範圍的數據導入到列向量、矩陣、元胞數組或表。可以生成代碼對多個相似文件重複該操作。

使用導入工具導入文本文件數據

readmatrixreadvars 或 readcell

將列向數據導入到矩陣、變量或元胞數組。

導入逗號分隔的數據

導入分隔的數值數據

將 readmatrixreadvars 或 readcell 與 detectImportOptions 結合使用:

對數據導入施加更多控制。例如,選擇變量,以導入或處理包含缺失數據或存在導致錯誤的數據的行。

從文本文件導入混合數據塊

readtable 或 readtimetable

將列向數據導入到表或時間表中。

從文本文件中導入混合數據

將 readtable 或 readtimetable 與 detectImportOptions 結合使用:

對數據導入施加更多控制。例如,選擇變量,以導入或處理包含缺失數據或存在導致錯誤的數據的行。

定義表的導入選項

TabularTextDatastore(使用 read 或 readall 函數)

導入一個或多個列向的文本文件。每個文件都可以很大,無需加載到內存中。

讀取和分析大型表格文本文件

textscan

將非矩形或任意格式的文本文件導入到元胞數組。

Import Block of Numeric Data from Text File

textscan

從文本文件或字符串讀取格式化數據

全頁摺疊

語法

C = textscan(fileID,formatSpec)

C = textscan(fileID,formatSpec,N)

C = textscan(chr,formatSpec)

C = textscan(chr,formatSpec,N)

C = textscan(___,Name,Value)

[C,position] = textscan(___)

有關導入具有更復雜格式的文件的信息,請參閱使用低級 I/O 導入文本數據文件

 

使用低級 I/O 導入文本數據文件

概述

通過低級文件 I/O 函數,可以最大程度地控制文件數據的讀取和寫入。但是,相對於更易於使用的高級函數,例如 importdata,這些低級函數要求指定更爲詳細的文件信息。有關讀取文本文件的高級函數的詳細信息,請參閱導入文本文件的方式

如果高級函數無法導入數據,請使用下列函數之一:

  • fscanf,讀取文本或 ASCII 文件(即可以在文本編輯器中查看的文件)中的格式化數據。有關詳細信息,請參閱讀取格式化模式的數據

  • fgetl 和 fgets,一次讀取文件中的一行,其中每一行通過換行符分隔。有關詳細信息,請參閱逐行讀取數據

  • fread,讀取從相應字節或位級開始的數據流。有關詳細信息,請參閱通過低級 I/O 導入二進制數據

有關其他信息,請參閱:

  • 檢測文件末尾 (EOF)

  • 使用不同的字符編碼打開文件

    檢測文件末尾 (EOF)

    當一次讀取數據的一部分時,可以使用 feof 檢查是否已到達文件的末尾。當文件指針位於文件末尾時,feof 返回值 1。否則,將返回 0

  • 使用 fgetl 和 fgets 測試 EOF

    如果在控制循環中使用 fgetl 或 fgetsfeof 並不始終是檢測文件末尾的最佳方式。作爲備選方法,可以考慮檢查 fgetl 或 fgets 返回的值是否爲字符向量。

  • 使用不同的字符編碼打開文件

    編碼方案支持特定字母所需的字符,例如日語或歐洲語言字符。常見的編碼方案包括 US-ASCII 或 UTF-8。

    如果您不指定編碼方案,fopen 將使用系統的默認編碼打開文件進行處理。要確定默認編碼方案,請打開文件,並再次使用以下語法調用 fopen

    [filename, permission, machineformat, encoding] = fopen(fid);

    如果在打開文件時指定了編碼方案,以下函數將應用該方案:fscanffprintffgetlfgetsfread 和 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

Methods for Importing Data

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 工作區

load

save

訪問 MATLAB 工作區中的部分變量

matfile matfile

文本

任意文本,包括:
CSV
TXT

逗號分隔的數字

readmatrix

writematrix

分隔數字

readmatrix

writematrix

分隔數字或者文本和數字混合

textscan

列向分隔數字或者文本和數字混合

readtable

readcell

readvars

writetable

writecell

電子表格

XLS
XLSX
XLSM

XLSB(僅限安裝了 Windows® 版 Microsoft® Excel® 的系統)

XLTM(僅導入)
XLTX(僅導入)

ODS(僅限安裝了 Windows 版 Microsoft Excel 的系統)

工作表或電子表格範圍中的列向數據

readmatrix

readtable

readcell

readvars

writematrix

writetable

writecell

可擴展標記語言

XML

XML 格式化文本

xmlread

xmlwrite

Data Acquisition Toolbox™ 文件

DAQ

Data Acquisition Toolbox

daqread

科學數據

CDF

常用數據格式 (CDF)

請參閱常用數據格式 (CDF)

請參閱 cdflib

FITS

普適圖像傳輸系統

請參閱FITS 文件

請參閱FITS 文件

HDF

分層數據格式第 4 版或 HDF-EOS 第 2 版

請參閱HDF4 文件

請參閱HDF4 文件

H5

HDF 或 HDF-EOS 第 5 版

請參閱HDF5 文件

請參閱HDF5 文件

NC

網絡通用數據格式 (netCDF)

請參閱NetCDF 文件

請參閱NetCDF 文件

圖像

BMP

Windows 位圖

imread

imwrite

GIF

圖形交換格式

HDF

分層數據格式

JPEG
JPG

聯合圖像專家組

JP2
JPF
JPX
J2C
J2K

JPEG 2000

PBM

可移植位圖

PCX

畫筆

PGM

可移植灰度圖

PNG

可移植網絡圖形

PNM

可移植圖

PPM

可移植像素圖

RAS

Sun™ 光柵

TIFF
TIF

標記圖像文件格式

XWD

X 窗口轉儲

CUR

Windows 光標資源

imread

ICO

Windows 圖標資源

音頻(所有平臺)

AU
SND

NeXT/Sun 聲音

audioread

audiowrite

AIFF

音頻交換文件格式

AIFC

帶壓縮編碼的音頻交換文件格式

FLAC

免費的無損壓縮音頻編碼

OGG

Ogg Vorbis

WAV

Microsoft WAVE 聲音

音頻 (Windows)

M4A
MP4

MPEG-4

audioread audiowrite

任意

Microsoft Media Foundation 支持的格式

audioread

音頻 (Mac)

M4A
MP4

MPEG-4

audioread audiowrite

音頻 (Linux®)

任意

GStreamer 支持的格式

audioread

視頻(所有平臺)

AVI

音頻視頻交叉存取格式

VideoReader

VideoWriter

MJ2

Motion JPEG 2000

視頻 (Windows)

MPG

MPEG-1

VideoReader

ASF
ASX
WMV

Windows Media®

任意

Microsoft DirectShow® 支持的格式

視頻(Windows 7 或更高版本)

MP4
M4V

MPEG-4

VideoReader VideoWriter

MOV

QuickTime

VideoReader

任意

Microsoft Media Foundation 支持的格式

視頻 (Mac)

MP4
M4V

MPEG-4

VideoReader VideoWriter

MPG

MPEG-1

VideoReader

MOV

QuickTime

任意

QuickTime 支持的格式,包括 .3gp.3g2 和 .dv

視頻 (Linux)

任意

安裝的 GStreamer 插件支持的格式,包括 .ogg

VideoReader

三角剖分

STL

立體光刻 stlread stlwrite

可以使用 RESTful 或 WSDL 等 Web 服務來讀取和寫入 Internet 媒體類型格式的數據,例如 JSON、XML、圖像或文本。有關詳細信息,請參閱:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章