MATLAB基本运算与运算符全解析

文章目录

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]

实战示例

matlab 复制代码
% 定义两个数组
A = [1 2 3];
B = [4 5 6];
% 元素级乘法
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,可写为:
matlab 复制代码
A = [3 2; 1 -1];
B = [8; 1];
x = A \ B;
% 输出解:x=2,y=1
disp(x);

三、关系运算符:条件判断的核心

关系运算符用于比较两个值(标量、数组、矩阵)的大小关系,返回逻辑值(1表示真,0表示假),常用于条件判断、数据筛选。

运算符 功能 示例 结果
== 等于 5 == 5 1
~= 不等于 6 ~= 8 1
> 大于 7 > 9 0
< 小于 4 < 6 1
>= 大于等于 8 >= 8 1
<= 小于等于 3 <= 2 0

数组/矩阵关系运算

关系运算符作用于数组/矩阵时,为元素级比较,返回同维度的逻辑数组,例如:

matlab 复制代码
A = [1 5 3; 4 2 6];
B = [3 3 3; 3 3 3];
% 比较A中元素是否大于3
C = 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的元素

matlab 复制代码
A = [1 5 7 4 2 8];
% 筛选条件:大于3 且 小于6
B = 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)计算三维向量的叉积,适用于几何运算。

六、常见易错点与避坑指南

  1. 混淆元素级运算和矩阵运算:数组批量计算忘加".",例如A * B(矩阵乘法)误写为元素级乘法,需牢记"元素级加.,矩阵运算不加.";
  2. 关系运算用"="代替"==":判断相等时误写if a=5(赋值),正确应为if a==5(判断);
  3. 矩阵维度不匹配:矩阵乘法、左除/右除前需检查维度,可通过size(A)查看矩阵维度;
  4. 短路逻辑用于数组:&&/||仅支持标量,数组逻辑运算需用&/|
相关推荐
代码游侠4 小时前
学习笔记——线程
linux·运维·开发语言·笔记·学习·算法
企微自动化4 小时前
Java 实现 Token 安全缓存:使用 ReentrantLock 和单例模式实现并发安全的 Token 管理器
开发语言·javascript·ecmascript
古德new4 小时前
openFuyao容器平台:企业级云原生全生命周期管理实践指南
开发语言
bleach-4 小时前
buuctf系列解题思路祥讲--[网鼎杯 2020 青龙组]AreUSerialz1——文件包含漏洞,PHP代码审计,php伪协议,php反序列化
开发语言·安全·web安全·网络安全·渗透测试·php
努力努力再努力wz4 小时前
【Linux网络系列】:网络+网络编程(UDPsocket+TCPsocket)
java·linux·c语言·开发语言·数据结构·c++·centos
zhaotiannuo_19984 小时前
渗透测试之后端编程PHP
开发语言·chrome·php
aini_lovee4 小时前
使用BP神经网络进行故障数据分类的方法和MATLAB实现
神经网络·matlab·分类
曹牧4 小时前
内部服务错误500
服务器·开发语言
while(1){yan}4 小时前
HTTP的数据报格式
java·开发语言·网络·网络协议·http·青少年编程·面试