文章目录
前言
矩阵运算是 MATLAB 的核心功能,也是它区别于其他编程语言的最大优势——MATLAB 对矩阵操作做了极致优化,语法简洁且运算高效。
安装环境配置:MATLAB下载安装教程https://blog.csdn.net/dxt0731/article/details/156277731
一、矩阵基础运算(最常用)
先明确两个核心概念:
- 矩阵运算:按线性代数规则计算(如矩阵乘法需满足维度匹配);
- 逐元素运算:矩阵对应位置元素单独计算(需加
.前缀)。
1. 基础算术运算
% 定义两个测试矩阵
A = [1 2 3; 4 5 6; 7 8 9]; % 3×3 矩阵
B = [9 8 7; 6 5 4; 3 2 1]; % 3×3 矩阵
C = [1; 2; 3]; % 3×1 列向量
% 1. 矩阵加减(维度必须完全相同)
D = A + B; % 对应元素相加
E = A - B; % 对应元素相减
% 2. 矩阵乘法 vs 逐元素乘法
F = A * B; % 矩阵乘法(A的列数=B的行数,3×3 × 3×3 = 3×3)
G = A .* B; % 逐元素乘法(对应位置相乘,需加 ".")
% 3. 矩阵除法(解方程 A*X=B 或 X*A=B)
H = A \ B; % 左除,等价于 inv(A)*B(A可逆时),解 A*X=B
I = A / B; % 右除,等价于 A*inv(B),解 X*B=A
J = A ./ B; % 逐元素除法(对应位置相除,需加 ".")
% 4. 标量与矩阵运算(自动广播)
K = A * 2; % 所有元素×2
L = A + 10; % 所有元素+10
% 输出关键结果
disp('矩阵乘法 A*B:'); disp(F);
disp('逐元素乘法 A.*B:'); disp(G);
disp('左除 A\B:'); disp(H);
2. 矩阵转置/共轭转置
A = [1+2i 3; 4 5-6i]; % 含复数的矩阵
% 转置(仅交换行列,保留虚数符号)
AT = A.';
% 共轭转置(转置+虚数取共轭,常用在工程计算中)
AH = A';
disp('原矩阵 A:'); disp(A);
disp('普通转置 A.'':'); disp(AT);
disp('共轭转置 A'':'); disp(AH);
3. 矩阵幂运算
A = [1 2; 3 4];
% 矩阵幂(A*A*...*A,n次矩阵乘法)
A_power = A^3; % 等价于 A*A*A
% 逐元素幂(每个元素单独取n次方)
A_elem_power = A.^3;
disp('矩阵幂 A^3:'); disp(A_power);
disp('逐元素幂 A.^3:'); disp(A_elem_power);
二、矩阵进阶运算(线性代数核心)
这些是工程计算、数据分析中高频使用的矩阵操作,MATLAB 提供了专用函数:
A = [1 2 3; 4 5 6; 7 8 9];
B = [1 2; 3 4; 5 6]; % 3×2 矩阵
% 1. 行列式(仅方阵可用)
det_A = det(A);
% 2. 逆矩阵(仅可逆方阵可用,行列式≠0)
% 若矩阵不可逆,可用 pinv 求伪逆
if det(A) ~= 0
inv_A = inv(A);
else
inv_A = pinv(A); % 伪逆(通用,非方阵也可用)
end
% 3. 秩(矩阵的秩)
rank_A = rank(A);
% 4. 特征值与特征向量
[V, D] = eig(A); % V=特征向量矩阵,D=特征值对角矩阵
% 5. 奇异值分解(SVD,通用,非方阵也可用)
[U, S, V] = svd(B);
% 6. 迹(方阵主对角线元素和)
trace_A = trace(A);
% 7. 矩阵求范数(衡量矩阵大小)
norm_A_2 = norm(A); % 2-范数(默认,最大奇异值)
norm_A_1 = norm(A,1); % 1-范数(列和最大值)
% 输出关键结果
disp('A的行列式:'); disp(det_A);
disp('A的秩:'); disp(rank_A);
disp('A的特征值:'); disp(diag(D)); % 提取对角元素(特征值)
三、实用技巧与注意事项
1. 维度匹配检查
矩阵运算最常见错误是「维度不匹配」,可先用 size() 检查维度:
A = [1 2; 3 4];
B = [5 6 7];
% 检查维度
size_A = size(A); % 返回 [2 2](行数 列数)
size_B = size(B); % 返回 [1 3]
% 若要做矩阵乘法,需满足 size(A,2) == size(B,1)
if size(A,2) == size(B,1)
C = A * B;
else
disp('维度不匹配,无法进行矩阵乘法!');
end
2. 大型矩阵运算优化
- 避免循环,优先用「向量化运算」(MATLAB 对矩阵操作优化远优于循环);
- 用
zeros()/ones()预分配矩阵内存,提升运算速度:% 预分配1000×1000矩阵(比动态扩展快10倍以上) big_mat = zeros(1000, 1000); for i = 1:1000 big_mat(i,:) = i:1000+i-1; end
3. 特殊矩阵生成
常用特殊矩阵可直接用内置函数生成,无需手动输入:
eye_mat = eye(3); % 3×3单位矩阵(主对角线为1)
zeros_mat = zeros(2,3); % 2×3全0矩阵
ones_mat = ones(3,2); % 3×2全1矩阵
rand_mat = rand(3); % 3×3随机矩阵(元素0~1)
总结
- MATLAB 矩阵运算分两类:矩阵运算(按线性代数规则,如
*/^/\)和逐元素运算(加.前缀,如.*/.^/./); - 进阶线性代数运算(逆、特征值、SVD等)直接调用
inv()/eig()/svd()等内置函数,无需手动实现; - 运算前用
size()检查维度匹配,大型矩阵需预分配内存(zeros()),优先向量化运算。

1万+

被折叠的 条评论
为什么被折叠?



