MATLAB基本操作与矩阵运算
算数运算
基本算术
加法 | 名称 |
---|
+ | 加法 |
sum | 数组元素总和 |
cumsum | 累积和 |
除法 | 名称 |
---|
./ | 数值右除 |
.\ | 数组左除 |
/ | 对线性方程组xA=B求解x |
\ | 对线性方程组Ax=B求解x |
模除法和舍入 | 名称 |
---|
mod | 除后的余数(取模运算) |
rem | 除后的余数 |
ceil | 朝正无穷大四舍五入 |
fix | 朝零四舍五入 |
floor | 朝负无穷大四舍五入 |
round | 四舍五入为最近的小数或整数 |
数组和矩阵运算
数组运算
运算符 | 说明 |
---|
+ | A+B 表示将 A 和 B 加在一起(+A表示返回A) |
- | A-B表示从A中减去B(-A表示对A的元素求反) |
.* | A.*B 表示 A 和 B 的逐元素乘积 |
.^ | A.^B 表示包含元素 A(i,j) 的 B(i,j) 次幂的矩阵 |
./ | A./B 表示包含元素 A(i,j)/B(i,j) 的矩阵 |
.\ | A.\B 表示包含元素 B(i,j)\A(i,j) 的矩阵 |
.’ | A.’ 表示 A 的数组转置。对于复矩阵,这不涉及共轭 |
矩阵运算
运算符 | 说明 |
---|
* | C = A*B 表示矩阵 A 和 B 的线性代数乘积。A 的列数必须与 B 的行数相等 |
\ | x = A\B 是方程 Ax = B 的解。矩阵 A 和 B 必须拥有相同的行数 |
/ | x = B/A 是方程 xA = B 的解。矩阵 A 和 B 必须拥有相同的列数。用左除运算符表示的话,B/A = (A’\B’)’ |
^ | A^B 表示 A 的 B 次幂(如果 B 为标量)。对于 B 的其他值,计算包含特征值和特征向量 |
’ | A’ 表示 A 的线性代数转置。对于复矩阵,这是复共轭转置 |
逻辑运算
函数 | 功能 |
---|
& | 计算逻辑 AND |
~ | 计算逻辑 NOT |
any | 确定任何数组元素是否为非零 |
false | 逻辑 0(假) |
find | 查找非零元素的索引和值 |
islogical | 确定输入是否为逻辑数组 |
logical | 将数值转换为逻辑值 |
true | 逻辑值 1(真) |
输入命令
函数
函数 | 说明 |
---|
ans | 最近计算的答案 |
clc | 清空命令行窗口 |
format | 设置命令行窗口输出显示格式 |
iskeyword | 确定输入是否为 MATLAB 关键字 |
clear | 从工作区中删除项目、释放系统内存 |
disp | 输出命令 |
format | 设置输出格式 |
; | 取消输出 |
q | 停止输出 |
crtl+c | 停止执行 |
矩阵和数组
创建和合并数组
函数 | 说明 |
---|
zeros | 创建全零数组 |
ones | 创建全部为 1 的数组 |
rands | 均匀分布的随机数 |
true | 逻辑值 1(真) |
false | 逻辑 0(假) |
eye | 单位矩阵 |
diags | 创建对角矩阵或获取矩阵的对角元素 |
blkdiag | 分块对角矩阵 |
repmat | 重复数组副本 |
创建网格
函数 | 说明 |
---|
linspace | 生成线性间距向量 |
logspace | 生成对数间距向量 |
meshgrid | 二维和三维网格 |
ndgrid | N 维空间中的矩形网格 |
确定大小、形状和排序
函数 | 说明 |
---|
length | 最大数组维度的长度 |
size | 数组大小 |
isempty | 确定数组是否为空 |
重构和重新排列
函数 | 说明 |
---|
sort | 对数组元素排序 |
sortrows | 对矩阵行或表行进行排序 |
flip | 翻转元素顺序 |
fliplr | 将数组从左向右翻转 |
flipup | 将数组从上向下翻转 |
transpose | 转置向量或矩阵 |
reshape | 重构数组 |
数据类型
创建数值变量
函数 | 说明 |
---|
single | 单精度数组 |
int8 | 8 位有符号整数数组 |
int16 | 16 位有符号整数数组 |
int32 | 32 位有符号整数数组 |
int64 | 64 位有符号整数数组 |
uint8 | 8 位无符号整数数组 |
uint16 | 16 位无符号整数数组 |
uint32 | 32 位无符号整数数组 |
uint64 | 64 位无符号整数数组 |
在数值类型之间转换
函数 | 说明 |
---|
cast | 将变量转换为不同的数据类型 |
typecast | 在不更改基础数据的情况下转换数据类型 |
查询类型和值
函数 | 说明 |
---|
isinteger | 确定输入是否为整数数组 |
isfloat | 确定输入是否为浮点数组 |
isnumeric | 确定输入是否为数值数组 |
isreal | 确定数组是否为实数数组 |
isfinite | 确定哪些数组元素为有限 |
isinf | 确定哪些数组元素为无限值 |
isnan | 确定哪些数组元素为 NaN |
创建、串联和转换
函数 | 说明 |
---|
string | 字符串数组 |
strings | 创建不包含字符的字符串数组 |
join | 合并字符串 |
char | 字符数组 |
cellstr | 转换为字符向量元胞数组 |
blanks | 创建空白字符数组 |
strcat | 水平串联字符串 |
append | 合并字符串 |
convertCharsToStrings | 将字符数组转换为字符串数组,其他数组不变 |
convertStringsToChars | 将字符串数组转换为字符数组,其他数组不变 |
convertContainedStringsToChars | 在元胞数组或结构体的任何级别转换字符串数组 |
double | 双精度数组 |
string | 字符串数组 |
str2double | 将字符串转换为双精度值 |
num2str | 将数字转换为字符数组 |
strfind | 在其他字符串中查找字符串 |
sscanf | 从字符串读取格式化数据 |
replace | 查找并替换一个或多个子字符串 |
strcmp | 比较字符串 |
strcmpi | 比较字符串(不区分大小写) |
strncmp | 比较字符串的前 n 个字符(区分大小写) |
strncmpi | 比较字符串的前 n 个字符(不区分大小写) |
循环及条件语句
函数 | 说明 |
---|
if, elseif, else | 条件为 true 时执行语句 |
for | 用来重复指定次数的 for 循环 |
switch, case, otherwise | 执行多组语句中的一组 |
try, catch | 执行语句并捕获产生的错误 |
while | 条件为 true 时重复执行的 while 循环 |
break | 终止执行 for 或 while 循环 |
continue | 将控制权传递给 for 或 while 循环的下一迭代 |
end | 终止代码块或指示最大数组索引 |
pause | 暂时停止执行 MATLAB |
return | 将控制权交还给调用脚本或函数 |
关于MATLAB基本操作与矩阵运算大概这些,当然这些只是一些比较常见的,需要多加练习才可以完全掌握,具体的用法可以在命令行窗口中打下help+function 即可获取函数的具体用法,也可以在mathworks的官网中获得,系统性地学习可在B站学习。