许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  2026 MATLAB矩阵操作怎么学?从输入到乘除一篇讲透(含10个代码案例)

2026 MATLAB矩阵操作怎么学?从输入到乘除一篇讲透(含10个代码案例)

阅读数 1403
点赞 0
article_banner

你刚开始用MATLAB处理矩阵,是不是经常被各种括号、冒号、点乘搞晕?明明看书时觉得懂了,一上手就报错“维度不匹配”。别着急,2026年了,这些坑其实有固定解法。今天我用丢勒的幻方矩阵做例子,把MATLAB矩阵操作最常用的输入、求和、转置、索引、乘除点乘一口气讲清楚。每个操作都带着代码,你跟着敲一遍,半小时就能上手。

一、矩阵输入与基础语法:3条规则记住就行

在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. 乘法:普通乘 vs 点乘

  • * 矩阵乘法:要求前一个矩阵的列数 = 后一个矩阵的行数。比如一个1×3的行向量乘以一个3×2的矩阵,得到1×2的结果。
  • .* 点乘:对应元素相乘,要求两个矩阵尺寸完全相同。

看代码:

% 矩阵乘法
[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 * A5 .* A 结果一样。

2. 除法:普通除 vs 点除

  • / 矩阵除法:粗略理解成 A * inv(B),但强烈不建议你用,数值不稳定。
  • ./ 点除:对应元素相除,尺寸必须相同。

几种情况:

  • 数值除以数值:a/b 等于 a./b
  • 数值在前,矩阵在后:只能用 ./,比如 5 ./ A
  • 矩阵在前,数值在后:A/5 和 A./5 一样
  • 矩阵除矩阵:A/B 容易出错,尽量用 A * pinv(B) 或者 A ./ B(要求同尺寸)

实战案例:你有两张同样大小的灰度图,想做一个“差分图”,就用 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里两行代码搞定。

六、一个小彩蛋:丢勒幻方右下角那个15

丢勒在1514年创作这幅幻方时,把年份嵌在了最下面一行的中间两个数字:14和1,合起来就是1514。而右下角是15?不对,右下角其实是1(最后一行最后一列)。我们用MATLAB验证一下:

A(4,4)   % 输出1

所以“15”藏在第4行第2列。这种人文彩蛋,学技术时碰上了也挺有意思。

七、给你的三点实用建议(踩过坑才懂)

  1. 随时用 whos 查看变量尺寸。报维度不匹配时,先敲 whos A B,看看行数列数对不对。
  2. 把常用的矩阵操作写成脚本。比如你每周都要处理同样格式的数据,把 sum、transpose、点乘的步骤存成 .m 文件,改个文件名就能复用。
  3. 分清 A' 和 A.'。虽然实数下没区别,但一旦你开始处理复数信号(比如傅里叶变换结果),用错会改符号,结果完全不一样。

2026年MATLAB的基础语法没有大改,这些矩阵操作依然是科学计算的基石。你照着上面的例子敲一遍,遇到报错就看错误提示里“维度不匹配”还是“索引超限”,八成能自己修好。搞不定的,去命令行敲 doc sum 看官方文档,比任何二手教程都准。

好了,现在你可以试试把丢勒幻方的第一行和第四行交换,看看每列和还是34吗?动手试一下,答案会让你意外。

武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空