MATLAB 自学路线图
我们将学习过程分为五个阶段,你可以根据自己的时间和目标来调整进度。
| 阶段 | 目标 | 预计时间 | |
|---|---|---|---|
| 第一阶段:入门与基础 | 熟悉MATLAB环境,掌握基本语法和操作 | 环境介绍、变量、矩阵、基本运算、脚本与函数 | 1-2周 |
| 第二阶段:编程与数据可视化 | 掌握MATLAB编程核心,学会处理数据和绘图 | 流程控制、函数文件、数据导入导出、2D/3D绘图 | 2-3周 |
| 第三阶段:进阶与科学计算 | 深入学习MATLAB强大的科学计算和仿真功能 | 数值计算、符号计算、数据拟合、微分方程求解 | 3-4周 |
| 第四阶段:专业方向与应用 | 针对自己的专业领域进行深入学习 | 信号处理、图像处理、控制系统、机器学习等 | 4周以上 |
| 第五阶段:项目实战与技巧 | 通过综合项目巩固知识,学习高级技巧 | 项目实战、代码优化、App Designer、与其他工具交互 | 持续进行 |
第一阶段:入门与基础
这个阶段的目标是让你能够像使用一个“超级计算器”一样使用MATLAB。

熟悉MATLAB桌面环境
- 命令行窗口:你在这里输入命令,MATLAB会立即执行并返回结果,这是最直接的交互方式。
- 编辑器:用于编写和调试脚本(.m文件)和函数(.m文件),语法高亮、代码折叠、调试功能非常强大。
- 工作区:显示当前所有变量及其信息(大小、类型等),你可以在这里查看、修改变量。
- 当前文件夹:显示MATLAB正在操作的文件夹路径,所有脚本和数据文件都应放在这里或其子目录中。
核心概念:一切皆矩阵
MATLAB的核心是矩阵,即使是单个数字(标量)也被看作是1x1的矩阵。
-
创建变量:
a = 5; % 创建一个标量 b = [1, 2, 3; 4, 5, 6]; % 创建一个 2x3 的矩阵 c = 1:2:9; % 创建一个行向量 [1, 3, 5, 7, 9] d = linspace(0, 10, 5); % 创建一个包含5个元素的行向量,从0到10均匀分布
-
访问矩阵元素:
A = magic(4); % 创建一个4x4的魔方矩阵 A(2, 3) % 访问第2行,第3列的元素 A(2, :) % 访问第2行的所有元素 A(:, 3) % 访问第3列的所有元素 A([1, 3], [2, 4]) % 访问第1和3行,第2和4列的元素
基本运算
-
算术运算:, , (矩阵乘法), (元素乘法), ,
.^(元素幂运算)
A = [1, 2; 3, 4]; B = [5, 6; 7, 8]; C = A * B; % 矩阵乘法 D = A .* B; % 元素乘法 [1*5, 2*6; 3*7, 4*8]
-
内置函数:
sum(),mean(),max(),min(),size(),length(),reshape()vec = [1, 5, 3, 9, 2]; sum(vec) max(vec) [rows, cols] = size(A); % 获取矩阵的行数和列数
脚本与函数
-
脚本:一个
.m文件,包含一系列MATLAB命令,运行脚本就是按顺序执行这些命令。- 如何创建:在编辑器中新建文件,保存为
my_script.m。 - 如何运行:在编辑器中点击“运行”按钮,或在命令行窗口输入
my_script。
- 如何创建:在编辑器中新建文件,保存为
-
函数:一个特殊的
.m文件,可以接收输入参数,返回输出结果,这是代码复用的关键。- 如何创建:在编辑器中新建文件,保存为
my_function.m。 - 函数结构:
function [outputArg1, outputArg2] = my_function(inputArg1, inputArg2) % 函数注释,解释函数功能 % 这是函数体 outputArg1 = inputArg1 * 2; outputArg2 = inputArg2 + 10; end
- 如何创建:在编辑器中新建文件,保存为
第二阶段:编程与数据可视化
这个阶段让你从“计算器”升级为“程序员”,并学会用数据讲故事。
流程控制
-
条件判断:
if x > 0 disp('x是正数'); elseif x < 0 disp('x是负数'); else disp('x是零'); end -
循环:
% for循环 for i = 1:5 disp(i); end % while循环 count = 0; while count < 5 count = count + 1; disp(count); end
数据处理
-
导入数据:使用
readtable,readmatrix,importdata等函数从CSV、Excel等文件中读取数据。T = readtable('my_data.csv'); % 读取CSV文件为表格 M = readmatrix('my_data.xlsx'); % 读取Excel文件为矩阵 -
导出数据:使用
writetable,writematrix,save等函数。writetable(T, 'output_data.csv'); save('my_variables.mat', 'a', 'b'); % 将变量a和b保存为.mat文件
数据可视化
MATLAB的绘图功能非常强大。
-
基本绘图函数:
plot(x, y): 绘制二维线图。scatter(x, y): 绘制二维散点图。bar(data): 绘制条形图。histogram(data): 绘制直方图。
-
图形定制:
x = 0:0.1:2*pi; y = sin(x); plot(x, y, 'r--o', 'LineWidth', 2); % 红色,虚线,带圆点,线宽为2'正弦波'); % 添加标题 xlabel('x轴'); % 添加x轴标签 ylabel('y轴'); % 添加y轴标签 legend('sin(x)'); % 添加图例 grid on; % 显示网格 -
3D绘图:
plot3(X, Y, Z): 绘制三维线图。surf(X, Y, Z): 绘制三维曲面图。mesh(X, Y, Z): 绘制三维网格图。
第三阶段:进阶与科学计算
这个阶段带你领略MATLAB作为“科学实验室”的强大能力。
数值计算
-
线性代数:
inv(),det(),eig(),lu(),qr()等。A = [1, 2; 3, 4]; inv_A = inv(A); % 求逆 eigenvalues = eig(A); % 求特征值
-
多项式:
poly(),roots(),polyval()。p = [1, -6, 11, -6]; % 表示多项式 x^3 - 6x^2 + 11x - 6 r = roots(p); % 求多项式根
-
数据拟合:
polyfit(),fit()(Curve Fitting Toolbox)。x = [1, 2, 3, 4, 5]; y = [2.1, 3.9, 6.2, 7.8, 10.1]; p = polyfit(x, y, 1); % 进行1次(线性)多项式拟合 y_fit = polyval(p, x); % 计算拟合值 plot(x, y, 'o', x, y_fit, '-'); % 绘制原始数据和拟合曲线
符号计算
需要安装 Symbolic Math Toolbox。
-
创建符号变量:
syms x y; f = x^2 + 2*x + 1;
-
符号运算:
diff(f, x); % 对f求关于x的导数 int(f, x); % 对f求关于x的不定积分 solve(f == 0, x); % 求解方程 f=0 simplify((x^2 - 1)/(x - 1)); % 化简表达式
微分方程求解
-
常微分方程:
ode45是最常用的求解器。% 定义微分方程 dy/dt = -2y myODE = @(t, y) -2*y; % 定义求解时间区间和初始条件 tspan = [0, 5]; y0 = 1; % 使用ode45求解 [t, y] = ode45(myODE, tspan, y0); % 绘制结果 plot(t, y);'一阶微分方程 dy/dt = -2y 的解');
第四阶段:专业方向与应用
当你掌握了基础后,就可以根据你的专业或兴趣深入学习了。
- 信号处理:学习使用Signal Processing Toolbox,进行滤波、傅里叶变换、谱分析等。
- 图像处理:学习使用Image Processing Toolbox,进行图像读取、增强、分割、特征提取等。
- 控制系统:学习使用Control System Toolbox,进行系统建模、分析(时域、频域)、控制器设计(PID)等,这是MATLAB的经典应用领域。
- 机器学习/深度学习:学习Statistics and Machine Learning Toolbox和Deep Learning Toolbox,用于分类、回归、聚类、神经网络等。
- Simulink:MATLAB的图形化仿真环境,非常适合用于动态系统(如电路、机械、控制系统)的建模和仿真。
学习方法:针对你感兴趣的方向,找到相关的官方示例,尝试理解并修改代码,然后找一个小项目来做。
第五阶段:项目实战与技巧
理论学得再多,不如亲手做一个项目。
项目实战
- 初级项目:
- 数据分析:找一份公开数据集(如房价、股票数据),进行数据清洗、统计分析、可视化,并建立预测模型。
- 数值计算:用MATLAB求解一个物理问题,如抛物运动、简谐振动。
- 中级项目:
- 图像处理:实现一个简单的图像识别功能,如识别图片中的数字或物体。
- 控制系统:为某个简单的系统(如倒立摆)设计一个PID控制器并进行仿真。
- 高级项目:
- 综合应用:结合信号处理和机器学习,实现一个语音识别或心率监测系统。
高级技巧
- 代码优化:
- 向量化:尽量使用矩阵运算代替循环,MATLAB对矩阵运算的优化远超循环。
- 预分配内存:在循环前创建好变量,避免在循环中动态改变大小。
- App Designer:学习使用MATLAB的App Designer,可以快速创建图形用户界面,让你的程序更专业、更易用。
- 与其他软件交互:学习使用MATLAB Engine调用Python或Java代码,或者通过
Excel COM Server与Excel交互。
推荐学习资源
-
官方资源(首选!)
- MATLAB 官方文档:最权威、最全面的学习资料,每个函数都有详细的说明和示例,遇到任何函数,第一反应就是去查官方文档。
- MATLAB Onramp:MathWorks官方提供的免费互动入门课程,大约2小时,带你快速上手MATLAB,强烈推荐新手完成!
- MATLAB Examples:官方提供了海量的示例代码,覆盖所有领域,是学习应用的最佳途径。
-
在线课程
- Coursera / edX:搜索 "MATLAB for Engineers", "Introduction to Programming with MATLAB" 等课程,很多来自世界顶尖大学。
- Udemy / 网易云课堂 / 中国大学MOOC:有大量中文MATLAB课程,从入门到精通,选择评价高的课程购买或学习。
-
书籍
- 《MATLAB从入门到精通》系列:国内很多出版社都有类似书籍,内容比较全面,适合系统学习。
- 《MATLAB Programming for Engineers》by Stephen J. Chapman:经典的英文入门教材,讲解清晰。
-
社区与论坛
- MATLAB中文论坛:国内MATLAB用户聚集地,问题解答很活跃。
- MATLAB Answers (MathWorks官方):向全球的MATLAB专家和用户提问的最佳平台。
学习建议
- 动手!动手!动手!:看再多教程,不如自己敲一行代码,跟着教程敲,然后尝试修改,看会发生什么。
- 多查文档:养成遇到问题先查官方文档的习惯,学会使用
doc命令,例如在命令行输入doc plot。 - 记录笔记:用Markdown或OneNote记录你学到的知识点、遇到的坑和解决方案。
- 从小项目开始:不要一开始就想做一个复杂的系统,从解决一个小问题开始,画一个正弦波并求其峰值”,逐步建立信心。
- 保持耐心:编程学习曲线有时会显得很陡峭,遇到困难是正常的,多思考、多搜索、多提问,坚持下去必有收获。
祝你学习顺利,享受MATLAB带来的乐趣和强大功能!