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、图像或文本。有关详细信息,请参阅: