MATLAB矩阵运算完,加减乘除/点运算/转置/逆矩阵/行列式

一、MATLAB矩阵基础

在MATLAB中,矩阵是核心数据结构,所有数值运算均围绕矩阵展开。创建矩阵的基础语法为:用中括号[]包裹元素,行内元素用空格/逗号分隔,行与行之间用分号;分隔。

matlab 复制代码
% 创建2×3矩阵
A = [1 2 3; 4 5 6];
% 创建3×3单位矩阵
B = eye(3);
% 创建3×3全1矩阵
C = ones(3);
% 创建随机矩阵(元素0-1之间)
D = rand(2,2);

二、矩阵基本运算(加减乘除)

1. 矩阵加减法

运算规则:仅同维度矩阵可进行加减运算,对应位置元素相加减。

matlab 复制代码
% 定义两个同维度矩阵
A = [1 2; 3 4];
B = [5 6; 7 8];

% 矩阵加法
C = A + B; % 结果:[6 8; 10 12]
% 矩阵减法
D = A - B; % 结果:[-4 -4; -4 -4]

% 标量与矩阵加减(广播机制)
E = A + 2; % 所有元素加2,结果:[3 4; 5 6]

注意 :若矩阵维度不匹配,MATLAB会报错Matrix dimensions must agree,需先确认矩阵行列数一致。

2. 矩阵乘法(*)

运算规则:前矩阵列数=后矩阵行数才可相乘,结果矩阵维度为"前矩阵行数×后矩阵列数"。

matlab 复制代码
% 定义符合乘法规则的矩阵
A = [1 2 3; 4 5 6]; % 2×3矩阵
B = [7 8; 9 10; 11 12]; % 3×2矩阵

% 矩阵乘法
C = A * B; % 结果:[1×7+2×9+3×11  1×8+2×10+3×12; 
           %        4×7+5×9+6×11  4×8+5×10+6×12]
           % 最终:[58 64; 139 154]

% 标量与矩阵乘法
D = A * 2; % 所有元素×2,结果:[2 4 6; 8 10 12]

3. 矩阵除法(\ 和 /)

MATLAB中矩阵除法分左除(\)和右除(/),本质是求解线性方程组:

  • 左除 A\B :等价于求解 A*X=B 的解X
  • 右除 A/B :等价于求解 X*B=A 的解X
matlab 复制代码
% 定义可逆矩阵
A = [1 2; 3 4];
B = [5; 6];

% 左除:求解A*X=B
X1 = A \ B; % 结果:[-4; 4.5]

% 右除示例
C = [7 8; 9 10];
X2 = C / A; % 等价于 C*inv(A)

三、矩阵点运算(./ .* .^)

点运算(元素级运算)是MATLAB特有的便捷操作,核心是对应位置元素独立运算,无需满足矩阵维度匹配规则(仅需维度相同或其中一个为标量)。

1. 点乘法(.*)

matlab 复制代码
A = [1 2; 3 4];
B = [5 6; 7 8];

% 点乘:对应元素相乘
C = A .* B; % 结果:[1×5 2×6; 3×7 4×8] = [5 12; 21 32]

2. 点除法(./ 和 .\)

matlab 复制代码
% 点右除:A元素 ÷ B对应元素
D = A ./ B; % 结果:[1/5 2/6; 3/7 4/8] ≈ [0.2 0.333; 0.428 0.5]

% 点左除:B元素 ÷ A对应元素
E = A .\ B; % 结果:[5/1 6/2; 7/3 8/4] = [5 3; 2.333 2]

% 标量点除
F = A ./ 2; % 所有元素÷2,结果:[0.5 1; 1.5 2]

3. 点幂运算(.^)

matlab 复制代码
% 元素级幂运算
G = A .^ 2; % 每个元素平方,结果:[1 4; 9 16]
H = A .^ B; % 对应元素幂运算,结果:[1^5 2^6; 3^7 4^8]

四、矩阵转置(' 和 .')

1. 普通转置(')

共轭转置,适用于复数矩阵(实数矩阵等价于普通转置):

matlab 复制代码
% 实数矩阵转置
A = [1 2 3; 4 5 6];
A_trans = A'; % 结果:[1 4; 2 5; 3 6]

% 复数矩阵共轭转置
B = [1+2i 3+4i; 5+6i 7+8i];
B_conj = B'; % 结果:[1-2i 5-6i; 3-4i 7-8i]

2. 非共轭转置(.')

仅转置不共轭,专为复数矩阵设计:

matlab 复制代码
B_trans = B.'; % 结果:[1+2i 5+6i; 3+4i 7+8i]

五、逆矩阵(inv())

1. 定义与使用

逆矩阵仅适用于方阵且行列式≠0 (可逆矩阵/非奇异矩阵),满足 A*inv(A)=eye(n)(单位矩阵)。

matlab 复制代码
% 定义可逆方阵
A = [1 2; 3 4];

% 求逆矩阵
A_inv = inv(A); % 结果:[-2 1; 1.5 -0.5]

% 验证:A×逆矩阵=单位矩阵
I = A * A_inv; % 结果:[1 0; 0 1]

2. 常见报错处理

若执行inv(A)报错Matrix is singular to working precision,说明矩阵行列式=0(奇异矩阵),无法求逆,可检查矩阵是否为方阵、行列式是否为0。

六、行列式(det())

行列式是方阵的标量属性,仅适用于方阵,MATLAB中用det()函数计算:

matlab 复制代码
% 2×2矩阵行列式
A = [1 2; 3 4];
det_A = det(A); % 计算:1×4 - 2×3 = -2

% 3×3矩阵行列式
B = [1 2 3; 4 5 6; 7 8 9];
det_B = det(B); % 结果:0(奇异矩阵,无法求逆)

七、实战案例:综合运算

matlab 复制代码
% 综合运算示例
clear; clc; % 清空变量和命令行

% 1. 创建矩阵
A = [2 5; 1 3];
B = [4 1; 2 7];

% 2. 基础运算
C = A + B; % 加法
D = A * B; % 矩阵乘法
E = A .* B; % 点乘法

% 3. 转置与逆矩阵
A_trans = A'; % 转置
A_inv = inv(A); % 逆矩阵

% 4. 行列式
det_A = det(A); % 行列式=2×3-5×1=1

% 5. 求解线性方程组 A*X=B
X = A \ B;

% 输出结果
disp('矩阵A:'); disp(A);
disp('矩阵B:'); disp(B);
disp('A+B:'); disp(C);
disp('A*B:'); disp(D);
disp('A.*B:'); disp(E);
disp('A的转置:'); disp(A_trans);
disp('A的逆矩阵:'); disp(A_inv);
disp('A的行列式:'); disp(det_A);
disp('A\B的解:'); disp(X);

八、注意事项

  1. 矩阵乘法()和点乘法(. )是最易混淆的操作:* 遵循矩阵运算规则,.* 是元素级运算;
  2. 求逆矩阵前务必确认矩阵是方阵且行列式≠0,否则会报错;
  3. 转置操作中,实数矩阵用'.'结果一致,复数矩阵优先用.'避免共轭;
  4. 矩阵除法优先使用左除(\),求解线性方程组时精度更高、速度更快。

总结

  1. MATLAB矩阵基础运算中,加减要求维度一致,乘法要求前矩阵列数=后矩阵行数,点运算(./、.*、.^)是元素级独立运算;
  2. 转置分共轭转置(')和非共轭转置(.'),逆矩阵(inv())仅适用于行列式≠0的方阵,行列式用det()计算;
  3. 矩阵除法中左除(\)用于求解AX=B,右除(/)用于求解XB=A,实际应用中左除更常用。
相关推荐
崇山峻岭之间5 小时前
Matlab学习记录31
开发语言·学习·matlab
bubiyoushang8887 小时前
MATLAB实现雷达恒虚警检测
数据结构·算法·matlab
yyy(十一月限定版)9 小时前
matlab矩阵的操作
算法·matlab·矩阵
做科研的周师兄10 小时前
【MATLAB 实战】栅格数据 K-Means 聚类(分块处理版)—— 解决大数据内存溢出、运行卡顿问题
人工智能·算法·机器学习·matlab·kmeans·聚类
hoiii18711 小时前
基于LSB匹配的隐写术MATLAB实现程序
开发语言·matlab
民乐团扒谱机12 小时前
【微实验】基于MATLAB的一维条材下料优化问题求解
数学建模·matlab·线性规划·最优化模型·整数线性规划
步达硬件12 小时前
【Matlab】批量自定义图像处理
开发语言·matlab
崇山峻岭之间12 小时前
Matlab学习记录32
开发语言·学习·matlab
机器学习之心14 小时前
MATLAB灰狼优化算法(GWO)改进物理信息神经网络(PINN)光伏功率预测
神经网络·算法·matlab·物理信息神经网络