你刚开始用MATLAB处理矩阵,是不是经常被各种括号、冒号、点乘搞晕?明明看书时觉得懂了,一上手就报错“维度不匹配”。别着急,2026年了,这些坑其实有固定解法。今天我用丢勒的幻方矩阵做例子,把MATLAB矩阵操作最常用的输入、求和、转置、索引、乘除点乘一口气讲清楚。每个操作都带着代码,你跟着敲一遍,半小时就能上手。
在MATLAB里输入矩阵,根本不用背复杂命令。你只需要记住三件事:
举个例子,德国画家丢勒那个著名的幻方(4×4,每行每列和对角线之和都是34),直接输入:
A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]回车后,MATLAB会乖乖显示:
A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1输入完毕,这个矩阵就自动存进了工作区。以后你直接敲 A 就能调出来。很多人刚开始会漏掉分号或者中括号,导致报错。记住:分号在矩阵内部表示换行,在语句末尾加分号则不显示结果,别搞混。
幻方最有意思的特性就是:每一列的和都是34。我们用 sum(A) 验证一下:
sum(A)MATLAB返回:
ans = 34 34 34 34注意,sum 默认是按列求和。那行和怎么算?有人说直接 sum(A, 2) 就行,没错,但更经典的方法是先转置再求列和。
转置用撇号 A' 或点撇号 A.'。对于实数矩阵(比如我们这里的全是整数),两者没区别。试试:
A'得到:
ans = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1然后 sum(A') 会得到一个行向量 [34 34 34 34],再转置一次 sum(A')' 就成了列向量。当然,更简单的写法是 sum(A,2),2026版MATLAB依然支持。你自己选习惯的方式。
小案例:假设你有一份2026年Q1各产品线的销售数据(5行×4列的矩阵),想快速算每条产品线的季度总和,用 sum(data, 2) 10秒搞定。
访问矩阵里的某个元素,最常用的就是下标法:A(行号, 列号)。比如丢勒矩阵第4行第2列的值:
A(4,2)ans = 15但MATLAB还有一种线性索引:把矩阵按列从上到下、从左到右排成一列,然后数第几个。比如 A(8),第8个元素是多少?按列顺序:第1列是16,5,9,4;第2列是3,10,6,15;第8个正好是15(第2列第4行)。两种方法都能取到,下标法更直观。
切片操作更常用。用冒号 : 表示范围。比如取第1到3行、第2列:
A(1:3, 2)输出:
ans =
3
10
6
单独的冒号代表整行或整列。A(3,:) 就是第三行所有列:[9,6,7,12]。
步长用法:start:step:end 生成等距向量。比如 B = 0:10:100 得到 [0,10,20,...,100]。这个技巧在做图像降采样、时间序列重采样时特别实用。
有个坑:你如果用下标访问一个不存在的元素,比如 A(4,5),MATLAB会直接报错“索引超出矩阵维度”。但是你在赋值语句左侧写 A(4,5)=17,矩阵会自动扩展到4行5列,缺失位置补0。这功能有时候救急,但容易造成意外,建议手动控制。
* 和 .* 到底啥区别?90%的新手报错都栽在乘除运算符上。我直接用对比案例说清楚。
看代码:
% 矩阵乘法
[1,2,3] * [1,2;3,4;5,6] % 结果 1×2: [22, 28]
% 点乘
[1,2,3] .* [4,5,6] % 结果 1×3: [4, 10, 18]
数值乘矩阵时,两种没区别:5 * A 和 5 .* A 结果一样。
几种情况:
实战案例:你有两张同样大小的灰度图,想做一个“差分图”,就用 im1 ./ im2 点除,看看哪个像素更亮。2026年图像处理里这种操作很常见。
假设你手上有一份2026年1-3月的销售数据(单位:万元),存储为4×3的矩阵 sales,行代表四个区域(东、南、西、北),列代表1月、2月、3月。
sales = [120 135 142; 98 112 108; 156 168 170; 88 95 102];
任务1:计算每个区域第一季度的总销售额。
total_by_region = sum(sales, 2) % 结果列向量: [397; 318; 494; 285]任务2:找出哪个月份全国总额最高。
monthly_total = sum(sales, 1) % 行向量: [462, 510, 522]max(monthly_total) % 522,对应3月任务3:计算每个区域相对于1月的增长率(2月/1月,3月/1月)。
growth = sales(:, 2:3) ./ sales(:, 1) % 点除,得到4×2矩阵你看,矩阵操作一出手,原本要在Excel里折腾半天的活,MATLAB里两行代码搞定。
丢勒在1514年创作这幅幻方时,把年份嵌在了最下面一行的中间两个数字:14和1,合起来就是1514。而右下角是15?不对,右下角其实是1(最后一行最后一列)。我们用MATLAB验证一下:
A(4,4) % 输出1所以“15”藏在第4行第2列。这种人文彩蛋,学技术时碰上了也挺有意思。

2026年MATLAB的基础语法没有大改,这些矩阵操作依然是科学计算的基石。你照着上面的例子敲一遍,遇到报错就看错误提示里“维度不匹配”还是“索引超限”,八成能自己修好。搞不定的,去命令行敲 doc sum 看官方文档,比任何二手教程都准。
好了,现在你可以试试把丢勒幻方的第一行和第四行交换,看看每列和还是34吗?动手试一下,答案会让你意外。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。