## 入门

### 介绍

MATLAB 是 `matrix laboratory` 的缩写形式

- MATLAB 官网
- MATLAB 官网(中文)

### 矩阵和数组运算

MATLAB 允许您使用单一的算术运算符或函数来处理矩阵中的所有值

    a + 10

MATLAB 将执行上述语句，并返回以下结果：

    ans = 3×3
        11    13    15
        12    14    16
        17    18    20

    sin(a)

MATLAB 将执行上述语句，并返回以下结果：

    ans = 3×3
        0.8415    0.1411   -0.9589
        0.9093   -0.7568   -0.2794
        0.6570    0.9894   -0.5440

要转置矩阵，请使用单引号 (`'`)

    a'

    ans = 3×3
         1     2     7
         3     4     8
         5     6    10

使用 `*` 运算符执行标准矩阵乘法，这将计算行与列之间的内积

    p = a*inv(a)

    p = 3×3
        1.0000         0         0
             0    1.0000         0
             0         0    1.0000

### 串联

串联是连接数组以便形成更大数组的过程。实际上，第一个数组是通过将其各个元素串联起来而构成的。成对的方括号 `[]` 即为串联运算符。

    A = [a,a]

    A = 3×6

         1     3     5     1     3     5
         2     4     6     2     4     6
         7     8    10     7     8    10

使用逗号将彼此相邻的数组串联起来称为水平串联。每个数组必须具有相同的行数。同样，如果各数组具有相同的列数，则可以使用分号垂直串联。

    A = [a; a]

    A = 6×3

         1     3     5
         2     4     6
         7     8    10
         1     3     5
         2     4     6
         7     8    10

### 矩阵和数组

要创建每行包含四个元素的数组，请使用逗号 (`,`) 或空格分隔各元素

    a = [1 2 3 4]

MATLAB 将执行上述语句，并返回以下结果：

    a = 1×4
         1     2     3     4

#### 创建包含多行的矩阵

    a = [1 3 5; 2 4 6; 7 8 10]

    a = 3×3
         1     3     5
         2     4     6
         7     8    10

#### 由零组成的 5×1 列向量

    z = zeros(5,1)

    z = 5×1
         0
         0
         0
         0
         0

### 复数

复数包含实部和虚部，虚数单位是 -1 的平方根。

    sqrt(-1)

    ans = 0.0000 + 1.0000i

要表示复数的虚部，请使用 i 或 j。

    c = [3+4i, 4+3j; -i, 10j]

    c = 2×2 complex

       3.0000 + 4.0000i   4.0000 + 3.0000i
       0.0000 - 1.0000i   0.0000 +10.0000i

## 语言基础知识

### 输入命令

:- | :- | :-
--- | --- | ---
ans | 最近计算的答案 |
clc | 清空命令行窗口 |
diary | 将命令行窗口文本记录到日志文件中 |
format | 设置输出显示格式 |
home | 发送光标复位 |
iskeyword | 确定输入是否为 MATLAB 关键字 |
more | 控制命令行窗口中的分页输出 |
commandwindow | 选择命令行窗口 |
commandhistory | 打开命令历史记录窗口 |

#### 对象

:- | :-
--- | ---
DisplayFormatOptions | 命令行窗口中的输出显示格式

### 矩阵和数组

创建和合并数组

:- | :- | :-
--- | --- | ---
zeros | 创建全零数组 |
ones | 创建全部为 1 的数组 |
rand | 均匀分布的随机数 |
true | 逻辑值 1（真） |
false | 逻辑 0（假） |
eye | 单位矩阵 |
diag | 创建对角矩阵或获取矩阵的对角元素 |
blkdiag | 分块对角矩阵 |
cat | 串联数组。 |
horzcat | 水平串联数组 |
vertcat | 垂直串联数组 |
repelem | 重复数组元素副本 |
repmat | 重复数组副本 |

创建网格

:- | :- | :-
--- | --- | ---
linspace | 生成线性间距向量 |
logspace | 生成对数间距向量 |
freqspace | 频率响应的频率间距 |
meshgrid | 二维和三维网格 |
ndgrid | N 维空间中的矩形网格 |

确定大小、形状和排序

:- | :- | :-
--- | --- | ---
length | 最大数组维度的长度 |
size | 数组大小 |
ndims | 数组维度数目 |
numel | 数组元素的数目 |
isscalar | 确定输入是否为标量 |
issorted | 确定数组是否已排序 |
issortedrows | 确定矩阵或表的行是否已排序 |
isvector | 确定输入是否为向量 |
ismatrix | 确定输入是否为矩阵 |
isrow | 确定输入是否为行向量 |
iscolumn | 确定输入是否为列向量 |
isempty | 确定数组是否为空 |

重构和重新排列

:- | :- | :-
--- | --- | ---
sort | 对数组元素排序 |
sortrows | 对矩阵行或表行进行排序 |
flip | 翻转元素顺序 |
fliplr | 将数组从左向右翻转 |
flipud | 将数组从上向下翻转 |
rot90 | 将数组旋转 90 度 |
transpose | 转置向量或矩阵 |
ctranspose | 复共轭转置 |
permute | 置换数组维度 |
ipermute | 逆置换数组维度。 |
circshift | 循环平移数组 |
shiftdim | 移动数组维度 |
reshape | 重构数组 |
squeeze | 删除长度为 1 的维度 |

索引

:- | :- | :-
--- | --- | ---
colon | 向量创建、数组下标和 `for` 循环迭代 |
end | 终止代码块或指示最大数组索引 |
ind2sub | 将线性索引转换为下标 |
sub2ind | 将下标转换为线性索引 |

### 数值类型

创建数值变量

:- | :- | :-
--- | --- | ---
double | 双精度数组 |
single | 单精度数组 |
int8 | 8 位有符号整数数组 |
int16 | 16 位有符号整数数组 |
int32 | 32 位有符号整数数组 |
int64 | 64 位有符号整数数组 |
uint8 | 8 位无符号整数数组 |
uint16 | 16 位无符号整数数组 |
uint32 | 32 位无符号整数数组 |
uint64 | 64 位无符号整数数组 |

在数值类型之间转换

:- | :- | :-
--- | --- | ---
cast | 将变量转换为不同的数据类型 |
typecast | 在不更改基础数据的情况下转换数据类型 |

查询类型和值

:- | :- | :-
--- | --- | ---
allfinite | Determine if all array elements are finite |
anynan | Determine if any array element is NaN |
isinteger | 确定输入是否为整数数组 |
isfloat | 确定输入是否为浮点数组 |
isnumeric | 确定输入是否为数值数组 |
isreal | 确定数组是否使用复数存储 |
isfinite | 确定哪些数组元素为有限 |
isinf | 确定哪些数组元素为无限值 |
isnan | 确定哪些数组元素为 NaN |

数值范围

:- | :- | :-
--- | --- | ---
eps | 浮点相对精度 |
flintmax | 浮点格式的最大连续整数 |
Inf | 创建所有值均为 `Inf` 的数组 |
intmax | 特定整数类型的最大值 |
intmin | 特定整数类型的最小值 |
NaN | 创建所有值均为 `NaN` 的数组 |
realmax | 最大的正浮点数 |
realmin | 最小标准浮点数 |

### 循环及条件语句

:- | :-
--- | ---
if, elseif, else | 条件为 true 时执行语句
switch, case, otherwise | 执行多组语句中的一组
for | 用来重复指定次数的 `for` 循环
while | 条件为 true 时重复执行的 `while` 循环
try, catch | 执行语句并捕获产生的错误
break | 终止执行 for 或 while 循环
return | 将控制权交还给调用脚本或函数
continue | 将控制传递给 `for` 或 `while` 循环的下一迭代
pause | 暂时停止执行 `MATLAB`
parfor | 并行 for 循环
end | 终止代码块或指示最大数组索引

### 字符串数组

:- | :- | :-
--- | --- | ---
string | 字符串数组 |
strings | 创建不包含字符的字符串数组 |
join | 合并字符串 |
plus | 添加数字，追加字符串 |

### 字符数组

:- | :- | :-
--- | --- | ---
char | 字符数组 |
cellstr | 转换为字符向量元胞数组 |
blanks | 创建空白字符数组 |
newline | 创建换行符 |

### 字符或字符串数组

:- | :- | :-
--- | --- | ---
compose | 将数据格式化为多个字符串 |
sprintf | 将数据格式化为字符串或字符向量 |
strcat | 水平串联字符串 |
append | 合并字符串 |

### 字符或字符串 - 转换输入参数

:- | :-
--- | ---
convertCharsToStrings | 将字符数组转换为字符串数组，其他数组不变
convertStringsToChars | 将字符串数组转换为字符数组，其他数组不变
convertContainedStringsToChars | 在元胞数组或结构体的任何级别转换字符串数组

### 字符或字符串 - 在数值和字符串之间转换

:- | :- | :-
--- | --- | ---
double | 双精度数组 |
string | 字符串数组 |
str2double | 将字符串转换为双精度值 |
num2str | 将数字转换为字符数组 |

### 字符或字符串 - 确定类型和属性

数据类型

:- | :- | :-
--- | --- | ---
ischar | 确定输入是否为字符数组 |
iscellstr | 确定输入是否为字符向量元胞数组 |
isstring | 确定输入是否为字符串数组 |
isStringScalar | 确定输入是否为包含一个元素的字符串数组 |

文本属性

:- | :- | :-
--- | --- | ---
strlength | 字符串长度 |
isstrprop | 确定输入字符串中的哪些字符属于指定类别 |
isletter | 确定哪些字符为字母 |
isspace | 确定哪些字符是空白字符 |

### 字符或字符串 - 查找和替换

查找

:- | :- | :-
--- | --- | ---
contains | 确定字符串中是否有模式 |
matches | 确定模式是否与字符串匹配 |
count | 计算字符串中模式的出现次数 |
endsWith | 确定字符串是否以模式结尾 |
startsWith | 确定字符串是否以模式开头 |
strfind | 在其他字符串中查找字符串 |
sscanf | 从字符串读取格式化数据 |

替换

:- | :- | :-
--- | --- | ---
replace | 查找并替换一个或多个子字符串 |
replaceBetween | 替换起点和终点之间的子字符串 |
strrep | 查找并替换子字符串 |

### 字符串匹配模式 - 构建模式

:- | :- | :-
--- | --- | ---
pattern | 用于搜索和匹配文本的模式 |

### 字符串匹配模式 - 字符匹配模式

:- | :- | :-
--- | --- | ---
alphanumericsPattern | 匹配字母和数字字符 |
characterListPattern | 匹配列表中的字符 |
digitsPattern | 匹配数字字符 |
lettersPattern | 匹配字母字符 |
whitespacePattern | 匹配空白字符 |
wildcardPattern | 匹配尽可能少的任意类型的字符 |

### 字符串匹配模式 - 模式搜索规则

:- | :- | :-
--- | --- | ---
optionalPattern | 使模式匹配可选 |
possessivePattern | 匹配模式而不回溯 |
caseSensitivePattern | 以区分大小写的方式匹配模式 |
caseInsensitivePattern | 以不区分大小写的方式匹配模式 |
asFewOfPattern | 模式匹配次数尽可能少 |
asManyOfPattern | 模式匹配次数尽可能多 |

### 字符串匹配模式 - 边界模式

:- | :-
--- | ---
alphanumericBoundary | 匹配字母数字字符与非字母数字字符之间的边界
digitBoundary | 匹配数字字符和非数字字符之间的边界
letterBoundary | 匹配字母字符和非字母字符之间的边界
whitespaceBoundary | 匹配空白字符和非空白字符之间的边界
lineBoundary | 匹配行首或行尾
textBoundary | 匹配文本的开头或结尾
lookAheadBoundary | 匹配指定模式之前的边界
lookBehindBoundary | 匹配指定模式之后的边界

### 字符串匹配模式 - 自定义模式显示

:- | :- | :-
--- | --- | ---
maskedPattern | 具有指定显示名称的模式 |
namedPattern | 指定命名模式 |

### 字符串匹配模式 - 正则表达式

:- | :- | :-
--- | --- | ---
regexp | 匹配正则表达式（区分大小写） |
regexpi | 匹配正则表达式（不区分大小写） |
regexprep | 使用正则表达式替换文本 |
regexptranslate | 将文本转换为正则表达式 |
regexpPattern | 匹配指定正则表达式的模式 |

### 字符串匹配模式 - 联接和拆分

:- | :- | :-
--- | --- | ---
join | 合并字符串 |
plus | 添加数字，追加字符串 |
split | 在分隔符处拆分字符串 |
splitlines | 在换行符处拆分字符串 |
strjoin | 联接数组中的字符串 |
strsplit | 在指定分隔符处拆分字符串或字符向量 |
strtok | 所选的字符串部分 |
extract | 从字符串中提取子字符串 |
extractAfter | 提取指定位置后的子字符串 |
extractBefore | 提取指定位置前的子字符串 |
extractBetween | 提取起点和终点之间的子字符串 |

### 字符串编辑

:- | :- | :-
--- | --- | ---
erase | 删除字符串内的子字符串 |
eraseBetween | 删除起点和终点之间的子字符串 |
extract | 从字符串中提取子字符串 |
extractAfter | 提取指定位置后的子字符串 |
extractBefore | 提取指定位置前的子字符串 |
extractBetween | 提取起点和终点之间的子字符串 |
insertAfter | 在指定的子字符串后插入字符串 |
insertBefore | 在指定的子字符串前插入字符串 |
pad | 为字符串添加前导或尾随字符 |
strip | 删除字符串中的前导和尾部字符 |
lower | 将字符串转换为小写 |
upper | 将字符串转换为大写 |
reverse | 反转字符串中的字符顺序 |
deblank | 删除字符串末尾的尾随空白 |
strtrim | 从字符串中删除前导和尾随空白 |
strjust | 对齐字符串 |

### 字符串比较

:- | :- | :-
--- | --- | ---
matches | 确定模式是否与字符串匹配 |
strcmp | 比较字符串 |
strcmpi | 比较字符串（不区分大小写） |
strncmp | 比较字符串的前 `n` 个字符（区分大小写） |
strncmpi | 比较字符串的前 `n` 个字符（不区分大小写） |

### 基本算术

加法

- + 添加数字，追加字符串
- sum 数组元素总和
- cumsum 累积和
- movsum 移动总和

减法

- - 减法
- diff 差分和近似导数

乘法

:- | :- | :-
--- | --- | ---
.* | 乘法 |
* | 矩阵乘法 |
prod | 数组元素的乘积 |
cumprod | 累积乘积 |
pagemtimes | 按页矩阵乘法 |
tensorprod | Tensor products between two tensors |

除法

:- | :- | :-
--- | --- | ---
./ | 数组右除 |
.\ | 数组左除 |
/ | 求解关于 x 的线性方程组 xA = B |
\ | 求解关于 x 的线性方程组 Ax = B |

幂

- .^ 按元素求幂
- ^ 矩阵幂

转置

:- | :- | :-
--- | --- | ---
.' | 转置向量或矩阵 |
' | 复共轭转置 |
pagetranspose | 按页转置 |
pagectranspose | 按页复共轭转置 |

数组符号

- uminus 一元减法
- uplus 一元加法

### 模除法和舍入

:- | :- | :-
--- | --- | ---
mod | 除后的余数（取模运算） |
rem | 除后的余数 |
idivide | 带有舍入选项的整除 |
ceil | 向正无穷舍入 |
fix | 向零舍入 |
floor | 向负无穷舍入 |
round | 四舍五入为最近的小数或整数 |

### 自定义二元函数

:- | :- | :-
--- | --- | ---
bsxfun | 对两个数组应用按元素运算（启用隐式扩展） |

### 关系运算

值的比较

:- | :- | :-
--- | --- | ---
== | 确定相等性 |
>= | 决定大于或等于 |
> | 确定大于 |
<= | 确定小于等于 |
< | 确定小于 |
~= | 确定不相等性 |
isequal | 确定数组相等性 |
isequaln | 测试数组相等性，将 `NaN` 值视为相等 |

### 逻辑（布尔）运算

true 或 false 条件

:- | :- | :-
--- | --- | ---
Short-circuit &&, || | 具有短路功能的逻辑运算 |
& | 计算逻辑 `AND` |
~ | 计算逻辑 `NOT` |
| | 计算逻辑 `OR` |
xor | 计算逻辑异 `OR` |
all | 确定所有的数组元素是为非零还是 `true` |
any | 确定是否有任何数组元素非零 |
false | 逻辑 `0`（假） |
find | 查找非零元素的索引和值 |
islogical | 确定输入是否为逻辑数组 |
logical | 将数值转换为逻辑值 |
true | 逻辑值 `1`（真） |

### 集合运算

并集、交集、集合关系

:- | :- | :-
--- | --- | ---
intersect | 设置两个数组的交集 |
ismember | 判断数组元素是否为集数组成员 |
setdiff | 设置两个数组的差集 |
setxor | 设置两个数组的异或 |
union | 设置两个数组的并集 |
unique | 数组中的唯一值 |
ismembertol | 容差范围内的集合成员 |
uniquetol | 容差内的唯一值 |
join | 使用键变量按行合并两个表或时间表 |
innerjoin | 两个表或时间表之间的内联 |
outerjoin | 两个表或时间表之间的外联 |

### 按位运算

设置、偏移或比较特定位域

:- | :- | :-
--- | --- | ---
bitand | 按位 `AND` |
bitor | 按位 `OR` |
bitxor | 按位 `XOR` |
bitcmp | 按位补码 |
bitget | 获取指定位置的位 |
bitset | 设置指定位置的位 |
bitshift | 将位移动指定位数 |
swapbytes | 交换字节顺序 |

## 数据导入和导出

### 文本文件 - 读取和写入表或时间表

#### 基本导入和导出

:- | :- | :-
--- | --- | ---
readtable | 基于文件创建表 |
writetable | 将表写入文件 |
readtimetable | 基于文件创建时间表 |
writetimetable | 将时间表写入文件 |

#### 定义导入规则

:- | :-
--- | ---
detectImportOptions | 基于文件内容生成导入选项
delimitedTextImportOptions | 为带分隔符的文本导入选项对象
fixedWidthImportOptions | 等宽文本文件的导入选项对象
xmlImportOptions | 为 XML 文件导入选项对象
htmlImportOptions | Import options object for HTML files
wordDocumentImportOptions | `Microsoft Word` 文档文件的导入选项对象
getvaropts | 获取变量导入选项
setvaropts | 设置变量导入选项
setvartype | 设置变量数据类型
preview | 使用导入选项预览文件中的八行数据

### 文本文件 - 读取和写入矩阵和数组

:- | :- | :-
--- | --- | ---
readmatrix | 从文件中读取矩阵 |
writematrix | 将矩阵写入文件 |
readcell | 从文件中读取元胞数组 |
writecell | 将元胞数组写入文件 |
readvars | 从文件中读取变量 |
textscan | 从文本文件或字符串读取格式化数据 |
type | 显示文件内容 |
fileread | 以文本格式读取文件内容 |
readlines | 以字符串数组形式读取文件行 |
writelines | Write text to file |

### 电子表格 - 读取和写入表或时间表

基本导入和导出

:- | :- | :-
--- | --- | ---
readtable | 基于文件创建表 |
writetable | 将表写入文件 |
readtimetable | 基于文件创建时间表 |
writetimetable | 将时间表写入文件 |
sheetnames | 从电子表格文件中获取工作表名称 |

定义导入规则

:- | :-
--- | ---
detectImportOptions | 基于文件内容生成导入选项
spreadsheetImportOptions | 电子表格的导入选项对象
getvaropts | 获取变量导入选项
setvaropts | 设置变量导入选项
setvartype | 设置变量数据类型
preview | 使用导入选项预览文件中的八行数据

### 电子表格 - 读取和写入矩阵和数组

:- | :- | :-
--- | --- | ---
readmatrix | 从文件中读取矩阵 |
writematrix | 将矩阵写入文件 |
readcell | 从文件中读取元胞数组 |
writecell | 将元胞数组写入文件 |
readvars | 从文件中读取变量 |
importdata | 从文件加载数据 |

### 图像

:- | :- | :-
--- | --- | ---
imfinfo | 有关图形文件的信息 |
imread | 从图形文件读取图像 |
imwrite | 将图像写入图形文件 |
Tiff | LibTIFF 库例程的 MATLAB 入口 |

### 读取或写入 NetCDF 文件

:- | :- | :-
--- | --- | ---
nccreate | 在 NetCDF 文件中创建变量 |
ncdisp | 在命令行窗口中显示 NetCDF 数据源内容 |
ncinfo | 返回有关 NetCDF 数据源的信息 |
ncread | 读取 NetCDF 数据源中的变量数据 |
ncreadatt | 读取 NetCDF 数据源中的属性值 |
ncwrite | 将数据写入 NetCDF 文件 |
ncwriteatt | 将属性写入 NetCDF 文件 |
ncwriteschema | 将 NetCDF 架构定义添加到 NetCDF 文件中 |

### NetCDF 库程序包 - 库函数

:- | :-
--- | ---
netcdf.getChunkCache | 检索 NetCDF 库的区块缓存设置
netcdf.inqLibVers | 返回 NetCDF 库版本信息
netcdf.setChunkCache | 设置 NetCDF 库的默认分块缓存设置
netcdf.setDefaultFormat | 更改默认 netCDF 文件的格式

### NetCDF 库程序包 - 文件操作

:- | :-
--- | ---
netcdf.abort | 还原最近的 netCDF 文件定义
netcdf.close | 关闭 netCDF 文件
netcdf.create | 创建新的 NetCDF 数据集
netcdf.endDef | 结束 netCDF 文件定义模式
netcdf.inq | 返回有关 netCDF 文件的信息
netcdf.inqFormat | 确定 NetCDF 文件的格式
netcdf.inqGrps | 检索子组 ID 数组
netcdf.inqUnlimDims | 检索组中无限维度列表
netcdf.open | 打开 NetCDF 数据源
netcdf.reDef | 让打开的 netCDF 文件进入定义模式
netcdf.setFill | 设置 netCDF 填充模式
netcdf.sync | 将 netCDF 文件同步到磁盘

### NetCDF 库程序包 - 维度

:- | :- | :-
--- | --- | ---
netcdf.defDim | 创建 netCDF 维度 |
netcdf.inqDim | 返回 netCDF 维度名称和长度 |
netcdf.inqDimID | 返回维度 ID |
netcdf.renameDim | 更改 netCDF 维度名 |

### NetCDF 库程序包 - 组

:- | :- | :-
--- | --- | ---
netcdf.defGrp | 在 NetCDF 文件中创建组 |
netcdf.inqDimIDs | 检索组中维度标识符列表 |
netcdf.inqGrpName | 检索组名 |
netcdf.inqGrpNameFull | 组的完整路径名 |
netcdf.inqGrpParent | 检索父组的 ID。 |
netcdf.inqNcid | 返回已命名组的 ID |
netcdf.inqVarIDs | 组中所有变量的 ID |

### NetCDF 库程序包 - 变量

:- | :-
--- | ---
netcdf.defVarFill | 定义 NetCDF 变量的填充参数
netcdf.defVar | 创建 NetCDF 变量
netcdf.defVarChunking | 定义 NetCDF 变量的分块行为
netcdf.defVarDeflate | 定义 NetCDF 变量的压缩参数
netcdf.defVarFletcher32 | 定义 NetCDF 变量的校验参数
netcdf.getVar | 读取 NetCDF 变量中的数据
netcdf.inqVar | 有关变量的信息
netcdf.inqVarChunking | 确定 NetCDF 变量的分块设置
netcdf.inqVarDeflate | 确定 NetCDF 变量的压缩设置
netcdf.inqVarFill | 确定 NetCDF 变量的填充参数值
netcdf.inqVarFletcher32 | 关于 NetCDF 变量的 Fletcher32 校验和设置
netcdf.inqVarID | 返回与变量名相关联的 ID
netcdf.putVar | 将数据写入 netCDF 变量
netcdf.renameVar | 更改 netCDF 变量名

### NetCDF 库程序包 - 属性

:- | :- | :-
--- | --- | ---
netcdf.copyAtt | 将属性复制到新位置 |
netcdf.delAtt | 删除 netCDF 属性 |
netcdf.getAtt | 返回 NetCDF 属性 |
netcdf.inqAtt | 返回有关 netCDF 属性的信息 |
netcdf.inqAttID | 返回 netCDF 属性的 ID |
netcdf.inqAttName | 返回 netCDF 属性名称 |
netcdf.putAtt | 写入 netCDF 属性 |
netcdf.renameAtt | 更改属性名称 |

### NetCDF 库程序包 - 用户定义的类型

:- | :-
--- | ---
netcdf.defVlen | Define user-defined variable length array type (NC_VLEN)
netcdf.inqUserType | Return information about user-defined type
netcdf.inqVlen | Return information about user-defined `NC_VLEN` type

### NetCDF 库程序包 - 实用工具

:- | :-
--- | ---
netcdf.getConstant | 返回命名常量的数值
netcdf.getConstantNames | 返回 netCDF 库已知的常量列表

### 读取或写入 HDF5 文件

:- | :- | :-
--- | --- | ---
h5create | 创建 HDF5 数据集 |
h5disp | 显示 HDF5 文件的内容 |
h5info | 有关 HDF5 文件的信息 |
h5read | 从 HDF5 数据集读取数据 |
h5readatt | 从 HDF5 文件中读取属性 |
h5write | 写入 HDF5 数据集 |
h5writeatt | 写入 HDF5 属性 |

### HDF5 库程序包

:- | :-
--- | ---
Library (H5) | General-purpose functions for use with entire HDF5 library
Attribute (H5A) | Metadata associated with datasets or groups
Dataset (H5D) | Multidimensional arrays of data elements and supporting metadata
Dimension Scale (H5DS) | Dimension scale associated with dataset dimensions
Error (H5E) | Error handling
File (H5F) | HDF5 file access
Group (H5G) | Organization of objects in file
Identifier (H5I) | HDF5 object identifiers
Link (H5L) | Links in HDF5 file
MATLAB (H5ML) | 不属于 HDF5 C 库的 `MATLAB` 工具函数
Object (H5O) | Objects in file
Property (H5P) | Object property lists
Reference (H5R) | HDF5 references
Dataspace (H5S) | Dimensionality of dataset
Datatype (H5T) | Datatype of elements in a dataset

### HDF4 文件 - 高级函数

:- | :-
--- | ---
hdfinfo | 有关 HDF4 或 HDF-EOS 文件的信息
hdfread | 从 HDF4 或 HDF-EOS 文件读取数据
imread | 从图形文件读取图像
imwrite | 将图像写入图形文件

### 低级函数 - 包

:- | :-
--- | ---
matlab.io.hdf4.sd | 直接与 HDF4 多文件科学数据集 (SD) 接口交互
matlab.io.hdfeos.gd | 低级别访问 HDF-EOS 网格数据
matlab.io.hdfeos.sw | 对 HDF-EOS 分段文件的低级别访问

#### 低级函数 - 函数

:- | :-
--- | ---
hdfan | HDF 多文件注释 (AN) 接口的入口
hdfhx | HDF 外部数据 (HX) 接口的入口
hdfh | HDF H 接口的入口
hdfhd | HDF HD 接口的入口
hdfhe | HDF HE 接口的入口
hdfml | 与 `MATLAB` HDF 入口函数配合使用的实用工具
hdfpt | HDF-EOS 点对象的接口
hdfv | HDF Vgroup (V) 接口的入口
hdfvf | HDF Vdata 接口中 VF 函数的入口
hdfvh | HDF Vdata 接口中 VH 函数的入口
hdfvs | HDF Vdata 接口中 VS 函数的入口
hdfdf24 | HDF 24 位光栅图像 (DF24) 接口的入口
hdfdfr8 | HDF 8 位光栅图像 (DFR8) 接口的入口

### FITS 文件 - 函数

:- | :-
--- | ---
fitsdisp | 显示 FITS 元数据
fitsinfo | 有关 FITS 文件的信息
fitsread | 读取 FITS 文件中的数据
fitswrite | 将图像写入 FITS 文件

### FITS 文件 - 文件访问

:- | :-
--- | ---
createFile | 创建 FITS 文件
openFile | 打开 FITS 文件
openDiskFile | 打开 FITS 文件
closeFile | 关闭 FITS 文件
deleteFile | 删除 FITS 文件
fileName | FITS 文件的名称
fileMode | FITS 文件的 I/O 模式

### FITS 文件 - 图像处理

:- | :-
--- | ---
createImg | 创建 FITS 图像
getImgSize | 图像大小
getImgType | 图像的数据类型
insertImg | 在当前图像后面插入 FITS 图像
readImg | 读取图像数据
setBscale | 重置图像缩放
writeImg | 写入 FITS 图像

### FITS 文件 - 关键字

:- | :-
--- | ---
readCard | 关键字的标头记录
readKey | 关键字
readKeyCmplx | 复数标量值形式的关键字
readKeyDbl | 双精度值形式的关键字
readKeyLongLong | `int64` 形式的关键字
readKeyLongStr | 长字符串值
readKeyUnit | 关键字中的物理单位字符串
readRecord | 编号指定的标头记录
writeComment | 向 CHU 写入或追加 COMMENT 关键字
writeDate | 向 CHU 写入 DATE 关键字
writeKey | 将新关键字更新或添加到当前 HDU 中
writeKeyUnit | 写入物理单位字符串
writeHistory | 向 CHU 写入或追加 HISTORY 关键字
deleteKey | 按名称删除关键字
deleteRecord | 按记录号删除关键字
getHdrSpace | 标头中的关键字数量

### FITS 文件 - 标头数据单元 (HDU) 访问

:- | :-
--- | ---
copyHDU | 将当前 HDU 从一个文件复制到另一个文件
getHDUnum | FITS 文件中当前 HDU 的编号
getHDUtype | 当前 HDU 的类型
getNumHDUs | FITS 文件中的 HDU 总数
movAbsHDU | 移至绝对 HDU 编号
movNamHDU | 移至第一个包含特定类型和关键字值的 HDU
movRelHDU | 从当前 HDU 移动相对数量的 HDU
writeChecksum | 计算并写入当前 HDU 的校验和
deleteHDU | 删除 FITS 文件中当前的 HDU

### FITS 文件 - 图像压缩

:- | :-
--- | ---
imgCompress | 将 HDU 从一个文件压缩到另一个文件中
isCompressedImg | 确定当前图像是否已压缩
setCompressionType | 设置图像压缩类型
setHCompScale | 设置 HCOMPRESS 算法的缩放参数
setHCompSmooth | 为使用 HCOMPRESS 压缩的图像设置平滑化
setTileDim | 设置图块维度

### FITS 文件 - ASCII 表和二进制表

:- | :-
--- | ---
createTbl | 创建新的 ASCII 或二进制表扩展
insertCol | 向表插入列
insertRows | 向表插入行
insertATbl | 在当前 HDU 后面插入 ASCII 表
insertBTbl | 在当前 HDU 后面插入二进制表
deleteCol | 从表中删除列
deleteRows | 从表中删除行
getAColParms | ASCII 表信息
getBColParms | 二进制表信息
getColName | 表列名称
getColType | 经缩放的列的数据类型、重复值、宽度
getEqColType | 列的数据类型、重复值、宽度
getNumCols | 表中的列数
getNumRows | 表中的行数
readATblHdr | 从当前 ASCII 表中读取标头信息
readBTblHdr | 从当前二进制表中读取标头信息
readCol | 读取 ASCII 或二进制表列的行
setTscale | 重置图像缩放
writeCol | 向 ASCII 或二进制表列写入元素

### FITS 文件 - 实用工具

:- | :-
--- | ---
getConstantValue | 指定常量的数值
getVersion | CFITSIO 库的修订号
getOpenFiles | 已打开的 FITS 文件列表

### 条带交错文件

:- | :-
--- | ---
multibandread | 从二进制文件读取条带交错文件
multibandwrite | 将条带交错数据写入文件

### 常用数据格式 (CDF)

:- | :-
--- | ---
cdfinfo | 有关常用数据格式 (CDF) 文件的信息
cdfread | 读取常用数据格式 (CDF) 文件中的数据
cdfepoch | 将日期文本或日期序列值转换为 CDF 格式的日期
todatenum | 将 CDF 历元对象转换为 `MATLAB` 日期序列值

#### 包

:- | :-
--- | ---
cdflib | 与 CDF 库直接交互

### 读取视频数据

:- | :-
--- | ---
VideoReader | 创建对象以读取视频文件
read | 读取一个或多个视频帧
readFrame | 读取下一个视频帧
hasFrame | 确定是否有视频帧可供读取
getFileFormats | `VideoReader` 支持的文件格式
mmfileinfo | 有关多媒体文件的信息

### 写入视频数据

:- | :-
--- | ---
VideoWriter | 创建对象以写入视频文件
open | 打开文件以写入视频数据
writeVideo | 将视频数据写入到文件
close | 写入视频数据之后关闭文件
getProfiles | `VideoWriter` 支持的描述文件和文件格式

### 读取或写入音频

:- | :-
--- | ---
audioread | 读取音频文件
audiowrite | 写音频文件
lin2mu | 将线性音频信号转换为 mu-law
mu2lin | 将 mu-law 音频信号转换为线性格式
audioinfo | 有关音频文件的信息

### 播放音频

:- | :-
--- | ---
audioplayer | 用于播放音频的对象
isplaying | 确定播放是否正在进行
pause | 暂停播放或录制
play | 从 `audioplayer` 对象播放音频
playblocking | 播放 `audioplayer` 对象中的音频，保持控制权直到播放完成
resume | 从暂停状态继续播放或录制
stop | 停止播放或录制

### 录制音频

:- | :-
--- | ---
audiorecorder | 用于录制音频的对象
getaudiodata | 将录制的音频信号存储在数值数组中
getplayer | 创建关联的 `audioplayer` 对象
isrecording | 确定录制是否正在进行
record | 将音频录制到 `audiorecorder` 对象中
recordblocking | 将音频录制到 `audiorecorder` 对象中，在录制完成前保持控制权

### 播放声音

:- | :-
--- | ---
audiodevinfo | 有关音频设备的信息
audiodevreset | 刷新可用音频设备列表
sound | 将信号数据矩阵转换为声音
soundsc | 缩放数据和作为声音播放
beep | 产生操作系统蜂鸣声

### XML 文档的读取和写入

:- | :-
--- | ---
matlab.io.xml.dom.DOMWriter | 串行化 XML 文档的写入器
matlab.io.xml.dom.EntityResolver | 实体解析器的抽象基类
matlab.io.xml.dom.FileWriter | 创建文本文件的写入器
matlab.io.xml.dom.Locator | 元素在 XML 文件中的位置
matlab.io.xml.dom.Parser | XML 标记解析器
matlab.io.xml.dom.ParserConfiguration | XML 解析器选项
matlab.io.xml.dom.ParseError | 指定 XML 标记解析错误
matlab.io.xml.dom.ParseErrorHandler | Abstract base class for parse error handlers
matlab.io.xml.dom.ParseErrorLocator | Specifies location of parse error
matlab.io.xml.dom.ParseErrorSeverity | 表示 XML 标记解析错误严重性的枚举类
matlab.io.xml.dom.ResourceIdentifier | XML 资源标识符
matlab.io.xml.dom.ResourceIdentifierType | XML 资源标识符类型
matlab.io.xml.dom.WriterConfiguration | XML DOM 写入器选项

### W3C DOM

:- | :-
--- | ---
matlab.io.xml.dom.Attr | XML 元素的属性
matlab.io.xml.dom.CDATASection | CDATA 节
matlab.io.xml.dom.Comment | XML 文档中的注释
matlab.io.xml.dom.Document | XML 文档
matlab.io.xml.dom.DocumentFragment | 文档节点组
matlab.io.xml.dom.DocumentType | 文档类型
matlab.io.xml.dom.Element | XML 文档的元素
matlab.io.xml.dom.Entity | 由文档类型定义的实体
matlab.io.xml.dom.NamedNodeMap | 一组具有名称的文档节点
matlab.io.xml.dom.NodeList | 文档节点列表
matlab.io.xml.dom.Notation | 文档类型定义中的表示法
matlab.io.xml.dom.ProcessingInstruction | XML 处理指令
matlab.io.xml.dom.Text | XML 文档中的文本
matlab.io.xml.dom.TypeInfo | 架构类型信息

### XML 变换

:- | :-
--- | ---
matlab.io.xml.transform.CompiledStylesheet | 编译的样式表
matlab.io.xml.transform.ResultDocument | 将转换结果存储为文档
matlab.io.xml.transform.ResultString | 将转换结果存储为字符串
matlab.io.xml.transform.ResultFile | 将转换结果存储为文件
matlab.io.xml.transform.SourceDocument | 用于转换的 XML 源文档
matlab.io.xml.transform.SourceFile | 用于转换的 XML 源文件
matlab.io.xml.transform.SourceString | 用于转换的 XML 源字符串
matlab.io.xml.transform.StylesheetSourceDocument | 用于转换的样式表源文档
matlab.io.xml.transform.StylesheetSourceFile | 用于转换的样式表源文件
matlab.io.xml.transform.StylesheetSourceString | 用于转换的 XSL 源字符串
matlab.io.xml.transform.Tracer | Trace execution of stylesheet
matlab.io.xml.transform.Transformer | XML 文档转换器

### XPath 查询

:- | :-
--- | ---
matlab.io.xml.xpath.CompiledExpression | 编译的 XPath 表达式
matlab.io.xml.xpath.EvalResultType | XPath 表达式计算的结果类型
matlab.io.xml.xpath.Evaluator | XPath 表达式计算器
matlab.io.xml.xpath.PrefixResolver | 用于命名空间前缀解析器的抽象基类

### JSON 格式

:- | :-
--- | ---
jsondecode | 解码 JSON 格式的文本
jsonencode | 基于结构化 `MATLAB` 数据创建 JSON 格式的文本

### 工作区变量和 MAT 文件

:- | :-
--- | ---
load | 将文件变量加载到工作区中
save | 将工作区变量保存到文件中
matfile | 访问和更改 MAT 文件中的变量，而不必将文件加载到内存中
disp | 显示变量的值
formattedDisplayText | 以字符串形式捕获显示输出
who | 列出工作区中的变量
whos | 列出工作区中的变量及大小和类型
clear | 从工作区中删除项目、释放系统内存
clearvars | 清除内存中的变量
openvar | 在变量编辑器或其他图形编辑工具中打开工作区变量
工作区浏览器 | 打开工作区浏览器以管理工作区

### 低级文件 I/O

:- | :-
--- | ---
fclose | 关闭一个或所有打开的文件
feof | 检测文件末尾
ferror | 文件 I/O 错误信息
fgetl | 读取文件中的行，并删除换行符
fgets | 读取文件中的行，并保留换行符
fileread | 以文本格式读取文件内容
fopen | 打开文件或获得有关打开文件的信息
fprintf | 将数据写入文本文件
fread | 读取二进制文件中的数据
frewind | 将文件位置指示符移至所打开文件的开头
fscanf | 读取文本文件中的数据
fseek | 移至文件中的指定位置
ftell | 当前位置
fwrite | 将数据写入二进制文件

### 串行和 USB 通信 - 连接和配置

:- | :-
--- | ---
serialportlist | 连接到您的系统的串行端口列表
serialport | 连接到串行端口
configureTerminator | 为与串行端口的 ASCII 字符串通信设置终止符
configureCallback | 为与串行端口设备的通信设置回调函数和触发条件

### 串行和 USB 通信 - 读取和写入

:- | :-
--- | ---
read | 从串行端口读取数据
readline | 从串行端口读取 ASCII 字符串数据行
write | 将数据写入串行端口
writeline | 将 ASCII 数据行写入串行端口

### 串行和 USB 通信 - 控制引脚和内存

:- | :-
--- | ---
flush | 清空串行端口设备缓冲区
getpinstatus | 获取串行引脚状态
setRTS | 设置串行 RTS 引脚
setDTR | 设置串行 DTR 引脚

### TCP/IP 通信 - 连接和配置

:- | :-
--- | ---
tcpclient | 创建与 TCP/IP 服务器的 TCP/IP 客户端连接
echotcpip | 启动或停止 TCP/IP 回显服务器
configureTerminator | 为通过 TCP/IP 与远程主机进行的 ASCII 字符串通信设置终止符
configureCallback | 为通过 TCP/IP 与远程主机的通信设置回调函数和触发条件

### TCP/IP 通信 - 读取和写入

:- | :-
--- | ---
read | 通过 TCP/IP 读取远程主机上的数据
readline | 通过 TCP/IP 从远程主机读取 ASCII 字符串数据行
write | 通过 TCP/IP 向远程主机写入数据
writeline | 通过 TCP/IP 向远程主机写入 ASCII 数据行
flush | 为通过 TCP/IP 与远程主机的通信清空缓冲区

### Bluetooth 通信 - 连接和配置

:- | :-
--- | ---
bluetoothlist | 扫描附近的 `Bluetooth` 经典设备
bluetooth | 连接到 `Bluetooth` 经典设备
configureTerminator | 为与 `Bluetooth` 设备的 ASCII 字符串通信设置终止符
configureCallback | 为与 `Bluetooth` 设备的通信设置回调函数和触发条件

### Bluetooth 通信 - 读取和写入

:- | :-
--- | ---
read | 从 `Bluetooth` 设备读取数据
readline | 从 `Bluetooth` 设备读取 ASCII 字符串数据行
write | 将数据写入 `Bluetooth` 设备
writeline | 将 ASCII 数据行写入 `Bluetooth` 设备
flush | 清空 `Bluetooth` 设备缓冲区

### Bluetooth 低功耗通信

:- | :-
--- | ---
blelist | 扫描附近的低功耗 `Bluetooth` 外围设备
ble | 连接到低功耗 `Bluetooth` 外围设备
characteristic | 访问低功耗 `Bluetooth` 外围设备的特征
descriptor | 访问低功耗 `Bluetooth` 外围设备上的描述符
read | 读取低功耗 `Bluetooth` 外围设备上的特征或描述符数据
write | 将数据写入低功耗 `Bluetooth` 外围设备的特征或描述符
subscribe | 订阅特征通知或指示
unsubscribe | 取消订阅特征通知和指示

### Web 服务

:- | :-
--- | ---
webread | 从 RESTful Web 服务读取内容
webwrite | 将数据写入 RESTful Web 服务
websave | 将 RESTful Web 服务中的内容保存到文件
weboptions | 指定 RESTful Web 服务的参数
web | 在浏览器中打开网页或文件
sendmail | 向地址列表发送电子邮件

### FTP 文件操作

:- | :-
--- | ---
ftp | 连接到 FTP 服务器以访问其文件
sftp | Connection to SFTP server to access its files
ascii | 将 FTP 传输模式设置为 ASCII
binary | 将 FTP 传输模式设置为二进制
cd | 更改或查看 SFTP 或 FTP 服务器上的当前文件夹
close | 关闭与 SFTP 或 FTP 服务器的连接
delete | 删除 SFTP 或 FTP 服务器上的文件
dir | 列出 SFTP 或 FTP 服务器上的文件夹内容
mget | 从 SFTP 或 FTP 服务器下载文件
mkdir | 在 SFTP 或 FTP 服务器上创建新文件夹
mput | 将文件或文件夹上传到 SFTP 或 FTP 服务器
rename | 重命名 SFTP 或 FTP 服务器上的文件
rmdir | 删除 SFTP 或 FTP 服务器上的文件夹

### 物联网 (IoT) 数据

:- | :-
--- | ---
thingSpeakRead | 读取存储在 `ThingSpeak` 通道中的数据
thingSpeakWrite | 将数据写入 `ThingSpeak` 通道

## 另见

- MATLAB 官网
- MATLAB 官网(中文)