跳转至

第 1 章:你的第一个数据分析

场景: 物理实验课上,你测量了一组弹簧伸长量与拉力的数据,需要计算弹性系数并验证胡克定律。打开 MATLAB,让我们用代码完成这个任务。


1.1 从实验数据开始

假设你记录了以下数据:

拉力 F (N) 0 1 2 3 4 5
伸长量 x (cm) 0 1.2 2.3 3.5 4.6 5.8

在 MATLAB 命令窗口中输入:

% 输入实验数据
F = [0, 1, 2, 3, 4, 5];        % 拉力,单位:牛顿
x = [0, 1.2, 2.3, 3.5, 4.6, 5.8];  % 伸长量,单位:厘米

% 计算弹性系数 k = F / x(胡克定律)
k = F ./ x;                     % 逐元素除法

% 查看结果
disp('弹性系数 k (N/cm):');
disp(k);

输出效果:

弹性系数 k (N/cm):
   NaN    0.8333    0.8696    0.8571    0.8696    0.8621

第一个值是 NaN(因为 0/0 无意义),其余值在 0.83~0.87 之间,说明弹性系数基本恒定,验证了胡克定律。


1.2 MATLAB 界面速览

打开 MATLAB 后,你会看到四个主要区域:

区域 位置 功能
命令窗口 中央 输入命令,立即执行并显示结果
工作区 右侧 显示当前所有变量及其值
当前文件夹 左侧 浏览和管理文件
编辑器 中央(打开脚本时) 编写和保存 .m 脚本文件

两种工作模式

  • 命令行模式:在命令窗口逐行输入,适合探索和快速计算
  • 脚本模式:在编辑器中写 .m 文件,适合复杂任务和重复使用

1.3 变量与赋值

MATLAB 是动态类型语言,变量无需声明类型:

a = 42;              % 标量(单个数值)
name = 'MATLAB';     % 字符串(用单引号)
isReady = true;      % 逻辑值

% 分号 ; 抑制输出,不加分号则显示结果
b = 3.14             % 不加分号,会在命令窗口显示 b = 3.1400

输出效果: 不加分号时,命令窗口显示 b = 3.1400。加分号时静默执行,不显示输出。


1.4 矩阵:MATLAB 的核心

MATLAB 的名字就是"矩阵实验室",一切皆矩阵。

创建矩阵

% 行向量
row = [1, 2, 3, 4, 5];       % 逗号分隔
row = [1 2 3 4 5];            % 空格分隔也行

% 列向量
col = [1; 2; 3; 4; 5];       % 分号表示换行

% 矩阵
A = [1, 2, 3;
     4, 5, 6;
     7, 8, 9];

% 快速生成序列
x = 1:10;                     % 1 到 10,步长为 1
x = 1:2:10;                   % 1, 3, 5, 7, 9(步长为 2)
x = linspace(0, 1, 100);      % 0 到 1 之间均匀取 100 个点

输出效果: 工作区窗口会显示每个变量的名称、维度、类型和值。双击变量可打开电子表格视图。

矩阵索引

A = [10, 20, 30;
     40, 50, 60;
     70, 80, 90];

A(2, 3)        % 第 2 行第 3 列 → 60
A(1, :)        % 第 1 行所有列 → [10, 20, 30]
A(:, 2)        % 所有行第 2 列 → [20; 50; 80]
A(1:2, 2:3)    % 第 1~2 行,第 2~3 列 → [20, 30; 50, 60]

输出效果: 命令窗口逐行显示索引结果,矩阵以行列格式对齐输出。


1.5 基本运算

矩阵运算 vs 逐元素运算

A = [1, 2; 3, 4];
B = [5, 6; 7, 8];

A * B           % 矩阵乘法 → [19, 22; 43, 50]
A .* B          % 逐元素乘法 → [5, 12; 21, 32](注意点号 .)

A / B           % 矩阵右除(A * inv(B))
A ./ B          % 逐元素除法 → [0.2, 0.333; 0.429, 0.5]

A ^ 2           % 矩阵幂(A * A)
A .^ 2          % 逐元素幂 → [1, 4; 9, 16]

输出效果: 矩阵乘法结果按线性代数规则计算;逐元素运算(带 . 前缀)对每个位置独立计算。

常用数学函数

x = [0, pi/2, pi];

sin(x)          % 正弦 → [0, 1, 1.2246e-16]
cos(x)          % 余弦 → [1, 6.1232e-17, -1]
exp(x)          % e^x
log(x)          % 自然对数
sqrt(x)         % 平方根
abs(x)          % 绝对值
round(x)        % 四舍五入

输出效果: 所有函数默认对矩阵每个元素独立计算(向量化),结果是与输入同尺寸的矩阵。


1.6 编写第一个脚本

在编辑器中新建文件 spring_analysis.m

% spring_analysis.m —— 弹簧弹性系数分析
clear; clc; close all;  % 清理工作环境

% 1. 输入实验数据
F = [0, 1, 2, 3, 4, 5];
x = [0, 1.2, 2.3, 3.5, 4.6, 5.8];

% 2. 计算弹性系数(排除第一个 0/0 点)
k = F(2:end) ./ x(2:end);

% 3. 统计分析
k_mean = mean(k);
k_std = std(k);

% 4. 输出结果
fprintf('弹性系数均值:%.4f N/cm\n', k_mean);
fprintf('弹性系数标准差:%.4f N/cm\n', k_std);

运行方式: 点击编辑器上方的"运行"按钮,或按 F5。

输出效果:

弹性系数均值:0.8584 N/cm
弹性系数标准差:0.0153 N/cm

标准差很小,说明弹性系数稳定,胡克定律成立。


1.7 常用快捷操作

操作 快捷键/命令
运行脚本 F5
清空命令窗口 clc
清空工作区变量 clear
关闭所有图形窗口 close all
查看变量信息 whos
查看帮助 help 函数名doc 函数名
注释/取消注释 Ctrl+R / Ctrl+T

本章回顾

你已经用 MATLAB 完成了第一个数据分析任务!回顾掌握的技能:

  • 理解 MATLAB 的矩阵核心思想
  • 创建向量和矩阵,使用索引访问元素
  • 区分矩阵运算(*)和逐元素运算(.*
  • 使用向量化函数处理数据
  • 编写和运行 .m 脚本文件
  • fprintf 格式化输出结果

👉 进入第 2 章:让数据说话 →