MATLAB 入门学习笔记


目录

  • Lesson 1 ·界面认识
  • Lesson 2 · 绘图基础
  • Lesson 3 · 脚本与函数(待学)
  • Lesson 4 · 控制流与向量化(待学)
  • Lesson 5 · 文件读写(待学)
  • Lesson 6 · 调试与常见错误(待学)

参考:基础入门

0. 简介

MATLAB(Matrix Laboratory 的缩写)是由 MathWorks 公司开发的一款数值计算与可视化软件环境。
它以矩阵为核心数据结构,拥有丰富的数学函数库和绘图功能,相比传统编程语言更直观、高效。

常见应用领域:

  • 数值计算:矩阵运算、线性代数、优化、微分方程
  • 数据分析与可视化:绘制二维、三维图像,交互式探索数据
  • 建模与仿真:结合 Simulink 做系统建模、工程验证
  • 科研与教学:科研人员和学生的重要工具,用于快速实现算法原型

Lesson 1·界面认识

image-20250918114213840

1.1 切换文件夹

建议在 D: 或 E: 盘新建一个英文路径(如 D:/matlab101),然后在「当前文件夹」窗口粘贴路径切换。

避免中文或空格路径,减少报错。


1.2 命令行(Command Window)

  • 用于输入单行命令,快速验证代码片段。
  • 常配合 clc; clear; close all; 清理环境使用。

1.3 编辑器(Editor)

  • 编写并运行 .m 脚本或函数,点击绿色 Run 按钮即可执行。
  • 新建脚本的方法:
    • 在「当前文件夹」右键 → 新建 → 脚本
    • 或菜单栏 → Home → New Script

1.3.1 脚本命名基本规则

  1. 文件名必须以字母开头
    • 允许字母、数字、下划线 _
    • 禁止空格、中文、特殊符号
  2. 区分大小写(尤其在 Linux/macOS 系统下)
    • MyScript.mmyscript.m 是两个不同文件
  3. 避免与内置函数重名
    • 不能命名为 plot.m, sum.m, mean.m
    • 可用 which plot 检查函数是否已存在

1.3.2 推荐命名风格

  • 小写 + 下划线分隔

    1
    2
    data_analysis.m
    signal_filter_demo.m
  • 驼峰命名(CamelCase)

    1
    2
    DataAnalysis.m
    SignalFilterDemo.m
  • 带编号/版本号(常用于学习记录)

    1
    2
    3
    lesson01_basics.m
    test_v1.m
    test_v2.m

Lesson 1 · 基础操作与向量/矩阵入门

1.1 清空环境与常用命令

1
2
3
4
5
6
clc;        % 清空命令行
clear; % 清除所有变量
close all; % 关闭所有图窗
clear x y; % 仅清除指定变量
who; % 查看当前变量名
whos; % 查看详细变量信息

小技巧:习惯在脚本开头写 clc; clear; close all;,保持环境干净。

1.2 变量命名规则

  • 以字母开头,可包含字母、数字、下划线。

  • 区分大小写:dataData 是不同变量。

  • 不要覆盖内置函数(如 summax)。

  • 尽量使用有意义的名称,例如:

    1
    2
    height_cm = 175;
    velocity_mps = 12.5;

1.3 数据与数据类型

MATLAB 默认数据类型为 double(双精度浮点数)。常见类型:

1
2
3
4
5
6
7
8
9
10
11
x = 10;             % double
c = 'A'; % char
s = "Hello"; % string
i = int32(100); % 整型
flag = true; % 逻辑型
arr = [1 2 3]; % 向量(double 数组)

% 查看类型与转换:
class(x)
int8(3.7) % 转换为整型
logical(0) % 转换为逻辑

1.4 矩阵及其运算

1
2
3
4
5
6
7
8
9
10
11
A = [1 2; 3 4];
B = [5 6; 7 8];
% 基本运算
C1 = A * B; % 矩阵乘法
C2 = A .* B; % 逐元素乘法
P1 = A ^ 2; % 矩阵幂
P2 = A .^ 2; % 逐元素平方
% 常见函数
transposeA = A';
invA = inv(A);
detA = det(A);

注:语句后面加分号用于隐藏脚本输出,不加分号可以在命令行查看该行输出;

1.5 脚本运行与部分行运行

  • 运行整个脚本:点击绿色 Run 按钮。

  • 运行部分行:选中代码 → 右键 → Run Section,或使用 Ctrl+Enter

  • 脚本中可用 %% 分隔为代码段,方便逐段运行:

    1
    2
    3
    4
    5
    %% 第一部分
    a = 1:5;
    %% 第二部分
    b = a.^2;
    plot(a,b);

1.6 注释方法

  • 单行注释:

    1
    % 这是注释
  • 多行注释:选中代码 → Ctrl+R 注释,Ctrl+T 取消注释。

  • 代码段标题:

    1
    %% 数据处理

1.7 生成多维矩阵

1
2
3
4
5
6
7
8
9
% 使用 reshape 创建多维数组
M = reshape(1:24, [3 4 2]); % 3x4x2 三维矩阵

% zeros/ones 支持多维
Z = zeros(3,4,5); % 3x4x5 的零矩阵
O = ones(2,2,2); % 立方体全 1

% rand 也支持多维
R = rand(3,3,3); % 3x3x3 随机矩阵

要点:MATLAB 中矩阵按 列优先 填充。

1.8 随机数生成

1.8.1 均匀分布

1
2
3
4
5
U = rand(3,4);        % (0,1) 区间均匀分布

U2 = rand(2,5) * 10; % (0,10) 区间均匀分布

Rint = randi([1,100], 3,3); % 整数均匀分布

1.8.2 正态分布

1
2
3
N = randn(3,4);        % 标准正态分布 N(0,1)

N2 = randn(1,1000)*2+5; % N(5, 2^2),均值 5 方差 4

1.8.3 设置随机数种子(保证可重复性)

1
2
rng(0);        % 固定随机数生成器状态
rand(1,5)

Lesson 2 · 绘图基础

所有绘图函数或其他函数的高级用法都可以在右键–>帮助(F1)查看。

2.1 简单绘图

1
2
3
x = linspace(0, 2*pi, 200);% 生成0到2Π之间的200个等间距点
y = sin(x);
plot(x, y); % plot用于绘制二维线图

默认绘制蓝色曲线。

2.2 设置线型与颜色

1
plot(x, y, 'r--', 'LineWidth', 2); % 红色虚线,线宽2

常用线型:'-' 实线,'--' 虚线,':' 点线,'-.' 点划线。
常用颜色:'r' 红,'g' 绿,'b' 蓝,'k' 黑。

2.3 多条曲线

1
2
3
4
y1 = sin(x);
y2 = cos(x);
plot(x,y1,'b', x,y2,'r--', 'LineWidth', 2);
legend('sin(x)','cos(x)');

2.4 添加标签与标题

1
2
3
4
xlabel('x');
ylabel('y');
title('Sine and Cosine');
grid on; % 打开网格

2.5 子图 (subplot)

1
2
3
4
subplot(2,1,1);
plot(x, sin(x)); title('sin(x)');
subplot(2,1,2);
plot(x, cos(x)); title('cos(x)');

2.6 散点图

1
2
3
x = rand(1,50);
y = rand(1,50);
scatter(x, y, 50, 'filled'); % 第三个参数表示点大小

2.7 保存图像

1
2
3
saveas(gcf, 'myplot.png');      % 保存为 PNG
saveas(gcf, 'myplot.fig'); % 保存 MATLAB figure
exportgraphics(gcf,'myplot.pdf'); % 高质量 PDF

📚 推荐阅读:二维绘图函数速查

以下是 MATLAB 官方文档的参考入口,包含常用二维绘图函数示例:

  • 折线图:plot
  • 散点图:scatter
  • 柱形图:bar, barh
  • 饼图:pie, pie3
  • 阶梯图:stairs
  • 面积图:area
  • 箱线图:boxplot
  • 直方图:histogram

👉 官方文档:2-D and 3-D Plots (MathWorks)