- MATLAB R2012a 简介:特点与界面
- 核心概念:变量、数组、脚本与函数
- 基础操作:数学运算、矩阵操作、绘图
- 实战入门:一个完整的例子
- 学习资源与进阶
MATLAB R2012a 简介
版本特点
- 经典界面:R2012a 使用的是 MATLAB 经典的桌面布局,与现在流行的功能区(Ribbon)界面不同。
- 稳定性:对于一些老旧的科研代码或特定硬件驱动,老版本可能更稳定。
- 功能完备:虽然版本老,但基础的数值计算、矩阵运算、数据可视化和编程功能都已具备。
启动与界面布局
启动 MATLAB R2012a 后,你会看到以下几个主要窗口:

-
Command Window (命令窗口):
- 核心交互区:在这里直接输入命令并立即看到结果。
- 提示符:
>>,表示 MATLAB 准备好接收你的指令。
-
Current Folder (当前文件夹):
- 显示当前 MATLAB 正在工作的文件夹路径。
- 你可以在这里看到该文件夹下的所有文件(
.m脚本文件、.mat数据文件等)。 - 双击文件可以直接打开。
-
Workspace (工作区):
- 一个“变量仓库”,所有你在 Command Window 中创建的变量都会在这里显示。
- 你可以看到每个变量的名称、数值(如果是小矩阵)、数据类型(
double,char等)和大小(Size)。
-
Command History (命令历史记录):
(图片来源网络,侵删)- 记录你在 Command Window 中输入过的所有命令。
- 你可以双击之前的命令来重新执行,或者右键选择复制/创建脚本,非常方便。
核心概念
变量与赋值
MATLAB 的核心是矩阵,一个标量(单个数字)是 1x1 的矩阵,一个向量是 1xN 或 Nx1 的矩阵。
- 赋值:使用 符号。
- 规则:
- 变量名区分大小写(
A和a是不同的变量)。 - 变量名必须以字母开头,可以包含字母、数字和下划线。
- 不需要预先声明变量类型。
- 变量名区分大小写(
>> a = 5; % 分号 ; 表示不显示结果,只在命令窗口执行
>> b = 10;
>> c = a + b
c =
15
数组/矩阵创建
MATLAB 创建矩阵非常直观。
% 创建一个行向量
>> v = [1, 2, 3, 4]
v =
1 2 3 4
% 创建一个列向量
>> u = [1; 2; 3; 4]
u =
1
2
3
4
% 创建一个 2x3 的矩阵
>> A = [1, 2, 3; 4, 5, 6]
A =
1 2 3
4 5 6
% 使用冒号运算符创建向量
>> x = 1:2:9 % 从1开始,步长为2,到9为止
x =
1 3 5 7 9
>> y = linspace(0, 1, 5) % 在0到1之间创建5个等分点
y =
0 0.2500 0.5000 0.7500 1.0000
脚本文件 (Script Files)
当你有一系列需要重复执行的命令时,应该使用脚本文件。
- 创建脚本:在 Current Folder 窗口,右键 -> New -> M-File。
- 编辑脚本:这会打开 MATLAB Editor 窗口。
- 保存脚本:保存为
.m文件,my_script.m。 - 运行脚本:
- 在 Editor 窗口中点击 "Run" 按钮(绿色三角形)。
- 在 Command Window 中输入脚本名(不带
.m):>> my_script
示例 my_script.m:

% 这是一个简单的脚本文件
% 用于计算并显示一个向量的平方
clear all; % 清空工作区所有变量
clc; % 清空命令窗口
disp('开始计算向量平方...');
% 创建一个向量
vec = [1, 2, 3, 4, 5];
% 计算平方 (逐元素乘法)
vec_squared = vec .^ 2; % 注意点 .^ 是逐元素乘方
% 显示结果
disp('原始向量:');
disp(vec);
disp('平方后的向量:');
disp(vec_squared);
函数文件 (Function Files)
函数是封装特定功能的代码块,可以接收输入并返回输出。
- 创建函数:同样通过 New -> M-File。
- 函数结构:
- 必须以
function关键字开头。 - 第一行是函数签名:
输出变量 = 函数名(输入变量) - 文件名必须与函数名一致。
- 必须以
示例 calculate_average.m:
function avg = calculate_average(numbers) % 计算一个向量的平均值 % 输入: % numbers - 一个数值向量 % 输出: % avg - 该向量的平均值 % 计算向量元素个数 n = length(numbers); % 计算总和 total = sum(numbers); % 计算平均值 avg = total / n; end % 函数结束
如何调用函数:
>> my_data = [10, 20, 30, 40, 50];
>> mean_value = calculate_average(my_data)
mean_value =
30
基础操作
数学运算
MATLAB 的运算分为矩阵运算和逐元素运算,这是初学者最容易混淆的地方。
| 运算 | 矩阵运算 | 逐元素运算 | 说明 |
|---|---|---|---|
| 乘法 | A * B |
A .* B |
逐元素相乘,要求 A 和 B 大小相同 |
| 乘方 | A ^ 2 |
A .^ 2 |
A 的每个元素都平方 |
| 除法 | A / B |
A ./ B |
逐元素相除 |
>> A = [1, 2; 3, 4];
>> B = [0, 1; 1, 0];
% 矩阵乘法
>> C_matrix = A * B
C_matrix =
2 1
4 3
% 逐元素乘法
>> C_element = A .* B
C_element =
0 2
3 0
常用内置函数
- 基本数学:
sin,cos,tan,exp,log,sqrt - 矩阵操作:
size(A): 返回矩阵 A 的维度。length(A): 返回向量 A 的最长维度(即元素个数)。sum(A): 对矩阵 A 的列求和。A': 矩阵 A 的转置。inv(A): 矩阵 A 的逆(慎用,A \ b通常更稳定)。A(i, j): 访问矩阵 A 的第 i 行,第 j 列元素。A(1, :): 访问矩阵 A 的第 1 行。A(:, 2): 访问矩阵 A 的第 2 列。
>> A = [1, 2, 3; 4, 5, 6];
>> size(A)
ans =
2 3
>> A(2, 3)
ans =
6
>> A(1, :)
ans =
1 2 3
>> sum(A)
ans =
5 7 9
数据可视化 (绘图)
MATLAB 绘图功能强大,plot 是最基础的函数。
- 创建图形:
plot(x, y) - 和标签:
title,xlabel,ylabel - 显示网格:
grid on - 打开新图窗:
figure
示例:
% 清空并准备
clc;
clear;
close all; % 关闭所有已打开的图形窗口
% 1. 创建数据
x = 0:0.1:2*pi; % 从0到2π,步长0.1
y1 = sin(x);
y2 = cos(x);
% 2. 创建第一个图形窗口
figure;
% 绘制 sin(x)
plot(x, y1, 'r-o', 'LineWidth', 2); % 'r-o' 表示红色,实线,圆形标记
hold on; % 保持当前图形,以便在同一图上添加新曲线
% 绘制 cos(x)
plot(x, y2, 'b--s'); % 'b--s' 表示蓝色,虚线,方形标记
% 3. 添加标签和标题'正弦和余弦函数');
xlabel('x (弧度)');
ylabel('y 值');
legend('sin(x)', 'cos(x)');
grid on;
hold off; % 释放图形
运行这段代码,会弹出一个包含 sin(x) 和 cos(x) 两条曲线的图形窗口。
实战入门:一个完整的例子
目标:生成一组随机数据,对其进行排序,并绘制排序前后的对比图。
步骤:
- 创建一个新脚本,命名为
data_analysis.m。 - 将以下代码复制进去。
% data_analysis.m
% 这个脚本演示了数据生成、处理和可视化的完整流程
% --- 1. 数据准备 ---
clc; % 清空命令窗口
clear; % 清空工作区
close all;% 关闭所有图形窗口
fprintf('--- 开始数据分析 ---\n');
% 生成100个在1到100范围内均匀分布的随机整数
data_original = randi([1, 100], 1, 100);
% --- 2. 数据处理 ---
fprintf('数据已生成,正在进行排序...\n');
% 对数据进行排序
data_sorted = sort(data_original);
% --- 3. 结果可视化 ---
fprintf('绘制结果图...\n');
% 创建一个新的图形窗口
figure('Name', '数据排序对比');
% 绘制原始数据
subplot(2, 1, 1); % 创建一个2行1列的子图,并激活第一个
plot(data_original, 'bo-'); % 蓝色圆圈和实线'原始数据 (未排序)');
xlabel('数据点索引');
ylabel('数值');
grid on;
% 绘制排序后的数据
subplot(2, 1, 2); % 激活第二个子图
plot(data_sorted, 'r*-'); % 红色星号和实线'排序后的数据');
xlabel('数据点索引');
ylabel('数值');
grid on;
fprintf('--- 分析完成 ---\n');
如何运行:
- 保存
data_analysis.m文件。 - 在 Command Window 中输入
data_analysis并按回车。 - 你会看到命令窗口的输出,并弹出一个包含两个子图的窗口,清晰地展示了排序前后的数据变化。
学习资源与进阶
R2012a 特有的帮助文档
对于老版本,最权威的帮助就是自带的文档。
- 打开方式:在 Command Window 中输入
doc然后回车,或者点击界面顶部的帮助按钮。 - 包含所有函数的详细说明、语法、示例和相关的理论背景,虽然界面旧,但内容非常扎实。
在线资源
- MathWorks 官方网站:
www.mathworks.com,虽然教程和示例以新版本为主,但核心代码是通用的。 - GitHub:搜索 "MATLAB tutorial",可以找到大量开源的学习项目和代码示例。
- Bilibili / YouTube:搜索 "MATLAB入门教程",有大量中文视频,选择播放量高、评价好的系列进行学习,这些视频通常基于较新版本,但基础操作部分差异不大。
进阶学习方向
- 数据导入导出:学习使用
load,save,xlsread,xlswrite等函数处理数据文件。 - 编程进阶:学习
for循环、if-else条件语句、switch-case结构。 - 符号计算:使用
syms定义符号变量,进行微积分、解方程等符号运算。 - Simulink:MATLAB 的图形化仿真环境,用于系统动态建模。
MATLAB R2012a 虽然版本老旧,但其核心语法和工作流程与当今版本一脉相承,掌握这份教程中的基础概念和操作,你将能够使用 MATLAB 进行基本的数值计算、数据分析和可视化,关键在于多动手练习,尝试修改示例代码,解决自己的小问题,这是学习 MATLAB 最有效的方法,祝你学习顺利!
