MATLAB作为工程计算、数据分析领域的主流工具,其灵活的运算体系和丰富的运算符是高效实现数值计算、矩阵操作的核心。
一、MATLAB运算基础:标量运算
标量运算是MATLAB最基础的运算形式,针对单个数值(整数、浮点数)的加减乘除等操作,运算符与常规数学运算逻辑一致,是入门的核心基础。
1. 算术运算符(标量)
| 运算符 | 功能 | 示例 | 运行结果 |
|---|---|---|---|
| + | 加法 | 5 + 3 | 8 |
| - | 减法 | 7 - 2 | 5 |
| * | 乘法 | 4 * 6 | 24 |
| / | 除法(右除) | 10 / 2 | 5 |
| \ | 除法(左除) | 2 \ 10 | 5(等价于10/2) |
| ^ | 幂运算 | 3 ^ 3 | 27 |
注意事项:
- MATLAB中除法分“右除(/)”和“左除(\)”,标量运算时结果一致,但矩阵运算中差异显著(下文详述);
- 幂运算支持小数次幂,如
4^0.5(等价于平方根),结果为2。
2. 赋值与优先级
- 赋值运算符:
=,用于将运算结果赋值给变量,例如a = 8 * 2;(变量a存储结果16); - 运算优先级:与数学规则一致——括号() > 幂运算^ > 乘除(*、/、) > 加减(+、-),例如
(5+3)*2^2先算括号内(8),再算幂(4),最后乘法(32)。
二、数组/矩阵运算:MATLAB的核心优势
MATLAB以“矩阵实验室”命名,矩阵/数组运算是其核心功能,需区分“元素级运算”和“矩阵运算”,避免混淆。
1. 元素级运算(数组运算)
元素级运算指两个同维度数组的对应位置元素逐一运算,运算符需在常规算术运算符前加“.”(点运算符),适用于数组的批量计算。
| 运算符 | 功能 | 示例 | 说明 |
|---|---|---|---|
| .+ | 数组加法 | [1 2 3] .+ [4 5 6] | 结果为[5 7 9](与普通加法一致) |
| .- | 数组减法 | [10 8 6] .- [3 2 1] | 结果为[7 6 5](与普通减法一致) |
| .* | 数组乘法 | [2 3 4] .* [5 6 7] | 对应元素相乘,结果[10 18 28] |
| ./ | 数组右除 | [10 20 30] ./ [2 4 6] | 对应元素相除,结果[5 5 5] |
| .\ | 数组左除 | [2 4 6] .\ [10 20 30] | 对应元素左除,结果[5 5 5] |
| .^ | 数组幂运算 | [2 3 4] .^ 2 | 每个元素平方,结果[4 9 16] |
实战示例:
% 定义两个数组A=[123];B=[456];% 元素级乘法C=A.*B;% 输出结果:[4 10 18]disp(C);2. 矩阵运算(线性代数运算)
矩阵运算遵循线性代数规则,无需加“.”,但需满足矩阵运算的维度要求(如矩阵乘法要求前一个矩阵的列数等于后一个矩阵的行数)。
| 运算符 | 功能 | 示例 | 说明 |
|---|---|---|---|
| * | 矩阵乘法 | [1 2; 3 4] * [5 6; 7 8] | 结果为[19 22; 43 50](按矩阵乘法规则计算) |
| / | 矩阵右除 | A/B | 等价于A*B⁻¹(B的逆矩阵) |
| \ | 矩阵左除 | A\B | 等价于A⁻¹*B(求解线性方程组Ax=B的解) |
| ^ | 矩阵幂运算 | A^n | 矩阵A的n次幂(n为正整数) |
关键提醒:
- 矩阵乘法维度不匹配会报错,例如
[1 2 3] * [4 5](3列×2行),MATLAB会提示“维度不一致”; - 矩阵左除()是求解线性方程组的核心用法,例如求解3x + 2y = 8,x - y = 1,可写为:
A=[32;1-1];B=[8;1];x=A\B;% 输出解:x=2,y=1disp(x);三、关系运算符:条件判断的核心
关系运算符用于比较两个值(标量、数组、矩阵)的大小关系,返回逻辑值(1表示真,0表示假),常用于条件判断、数据筛选。
| 运算符 | 功能 | 示例 | 结果 |
|---|---|---|---|
| == | 等于 | 5 == 5 | 1 |
| ~= | 不等于 | 6 ~= 8 | 1 |
| > | 大于 | 7 > 9 | 0 |
| < | 小于 | 4 < 6 | 1 |
| >= | 大于等于 | 8 >= 8 | 1 |
| <= | 小于等于 | 3 <= 2 | 0 |
数组/矩阵关系运算:
关系运算符作用于数组/矩阵时,为元素级比较,返回同维度的逻辑数组,例如:
A=[153;426];B=[333;333];% 比较A中元素是否大于3C=A>3;% 输出结果:[0 1 0; 1 0 1]disp(C);四、逻辑运算符:复合条件判断
逻辑运算符用于组合多个关系判断条件,实现复合逻辑筛选,MATLAB支持元素级逻辑运算和短路逻辑运算两类。
1. 元素级逻辑运算符(针对数组/矩阵)
| 运算符 | 功能 | 示例 | 结果 |
|---|---|---|---|
| & | 逻辑与(元素级) | (5>3) & (2<1) | 0 |
| | | 逻辑或(元素级) | `(5>3) | (2<1)` |
| ~ | 逻辑非(元素级) | ~(5>3) | 0 |
2. 短路逻辑运算符(针对标量)
短路逻辑运算符仅适用于标量,运算时会“短路”(即左侧条件满足时,右侧不再计算),提升运算效率:
| 运算符 | 功能 | 示例 | 说明 |
|---|---|---|---|
| && | 短路与 | (a>0) && (b<10) | 若a≤0,直接返回0,不计算b<10 |
| || | 短路或 | `(a>0) |
实战应用:筛选数组中大于3且小于6的元素
A=[157428];% 筛选条件:大于3 且 小于6B=A(A>3&A<6);% 输出结果:[5 4]disp(B);五、特殊运算符与常用运算技巧
1. 冒号运算符(:):生成序列/切片
冒号是MATLAB最常用的特殊运算符,可生成等差序列、提取矩阵行/列:
- 生成序列:
a:b(从a到b,步长1),a:step:b(指定步长),例如1:2:9生成[1 3 5 7 9]; - 矩阵切片:
A(:,2)提取矩阵A的第2列,A(3,:)提取第3行,A(2:4,1:3)提取第2-4行、1-3列。
2. 转置运算符
- 普通转置(.'):仅转置矩阵,不共轭,例如
[1 2; 3 4].'结果为[1 3; 2 4]; - 共轭转置('):转置+共轭(复数矩阵常用),例如
[1+2i 3; 4 5-6i]'结果为[1-2i 4; 3 5+6i]。
3. 点积/叉积运算
- 点积(dot):
dot(A,B)计算两个向量的点积,等价于sum(A.*B); - 叉积(cross):
cross(A,B)计算三维向量的叉积,适用于几何运算。
六、常见易错点与避坑指南
- 混淆元素级运算和矩阵运算:数组批量计算忘加“.”,例如
A * B(矩阵乘法)误写为元素级乘法,需牢记“元素级加.,矩阵运算不加.”; - 关系运算用“=”代替“==”:判断相等时误写
if a=5(赋值),正确应为if a==5(判断); - 矩阵维度不匹配:矩阵乘法、左除/右除前需检查维度,可通过
size(A)查看矩阵维度; - 短路逻辑用于数组:
&&/||仅支持标量,数组逻辑运算需用&/|。