搞MATLAB矩阵运算的人,80%的报错都出在同一批地方。2026年了,MATLAB的矩阵运算函数比十年前多了不少,但底层逻辑没变。向量怎么生成、矩阵怎么运算、线性方程组怎么解,这几块搞不清楚,代码写得再花哨也白搭。
向量是MATLAB矩阵运算的地基,生成方式就3种,但很多人第一步就踩坑。
直接输入最简单:A = [1,2,3,4,5,6],一维向量,6个分量,空格逗号都能当分隔符。
冒号表达式更灵活:x = 0:0.5:10,从0到10,步长0.5,一口气生成21个元素。比手动输快太多了。
linspace函数适合要精确控制元素个数的场景:y = linspace(0, 10, 50),50个点均匀分布在0到10之间。画图的时候这个函数用得最多。
运算方面,加减和数乘没什么好说的。点乘用dot(),叉乘用cross(),别搞反了。混合积是dot(a, cross(b, c)),算体积用的,几何里经常碰到。我之前做一个机器人路径规划的项目,混合积判断三个向量是否共面,一行代码就搞定了。

矩阵生成比向量多几个花样。直接输入:A = [1,2,3;4,5,6;7,8,9],分号隔行,逗号隔列,这个规则记死就行。
特殊矩阵有6个函数要记牢:zeros生成全零矩阵,ones生成全一矩阵,eye生成单位矩阵,rand生成0到1均匀分布随机矩阵,randn生成标准正态分布矩阵,magic生成魔方矩阵。我见过有人用magic(5)当测试矩阵,每行每列对角线加起来都是65,拿来验证算法特别方便。
运算部分有个大坑:左除\和右除/完全不一样。x = A\b是解Ax=b,x = b/A是解xA=b。这个搞反了,结果差十万八千里。求逆用inv(),伪逆用pinv(),矩阵不满秩的时候pinv()比inv()靠谱得多,别硬求逆。
特殊操作里最常用的3个:diag()抽对角线元素,tril()取下三角,triu()取上三角。reshape()变维度,rot90()旋转,fliplr()左右翻转。这些函数看着简单,组合起来能解决不少矩阵处理的脏活。
线性方程组求解是MATLAB矩阵运算里最容易翻车的环节。
唯一解最简单:AX=b,直接X = A\b。也可以用rref()函数,把增广矩阵[A,b]化成行最简形,一眼就能看出解。
齐次方程组AX=0用null()求基础解系。敲一句format rat让结果用分数显示,比小数精确得多。z = null(A,'r'),z的列向量就是基础解系。
非齐次方程组求通解要分3种情况,别偷懒直接丢给A\b。先算系数矩阵A和增广矩阵B的秩:R_A = rank(A),R_B = rank(B),n是未知数个数。
R_A = R_B = n,唯一解,X = A\b。R_A = R_B < n,无穷多解,先求一组特解X = A\b,再用C = null(A,'r')求基础解系,通解就是特解加上基础解系的线性组合。其他情况,无解,别硬算。
我之前帮一个学经济的朋友跑联立方程,4个方程5个未知数,他直接用inv(A)*b,结果报错说矩阵奇异。后来一查秩,R_A = 3,R_B = 3,n = 5,明显无穷多解。换成null()求基础解系,问题就解决了。
[V,D] = eig(A),D是特征值对角阵,V是特征向量矩阵,一句话搞定。
拿个实际例子跑一遍。3×3矩阵的特征值算出来是-1和2(二重根)。特征值-1对应的特征向量是(-0.7071, 0, -0.7071),特征值2对应两个线性无关的特征向量。2026年做模态分析、主成分分析,这步绕不开。
MATLAB矩阵运算这块内容,说难不难,说简单也不简单。向量生成就3种方式,矩阵运算的坑主要在左除右除和求逆上,解线性方程组要先判秩再选方法,特征值用eig()一把梭。把这几块吃透,日常的数值计算、算法验证都够用了。别光收藏不练,打开MATLAB敲一遍比看10篇教程都强。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。