- 版本特点与准备工作
- MATLAB 基础入门
- 核心编程概念
- 数据可视化
- 实践案例:从零开始解决一个简单问题
- 学习资源与升级建议
版本特点与准备工作
R2012a 的特点
- 界面经典:采用经典的 MATLAB 界面布局,与当前版本有较大区别,但核心功能区域(命令窗口、当前文件夹、工作区、历史命令)都具备。
- 功能完备:包含了矩阵运算、数值计算、符号计算、2D/3D绘图、基础GUI设计等所有核心功能。
- 兼容性:对于一些非常老旧的工程项目或教学环境,可能仍在使用这个版本,但请注意,它不兼容较新版本的
.mat文件语法和一些新函数。
准备工作
-
安装 MATLAB R2012a:
(图片来源网络,侵删)- 确保您的电脑系统兼容(通常是 32位/64位的 Windows XP/Vista/7)。
- 找到 R2012a 的安装包(ISO文件)。
- 运行
setup.exe,按照向导进行安装。请务必记住安装时设置的 MathWorks 账户和密码,用于激活。
-
熟悉工作界面 (Desktop): 启动 MATLAB 后,您会看到几个最重要的窗口:
- Command Window (命令窗口):这是您与 MATLAB 交互的主战场,您可以在这里直接输入命令并立即看到结果。
- Current Folder (当前文件夹):显示 MATLAB 当前正在操作的文件夹路径,您可以在这里浏览、打开、保存您的脚本(.m文件)和数据。
- Workspace (工作区):显示当前内存中所有变量的名称、大小、类型和值,您可以在这里查看、修改甚至删除变量。
- Command History (历史命令):记录您在命令窗口中执行过的所有命令,方便您重复使用。
MATLAB 基础入门
1 交互式计算
在命令窗口中,您可以像计算器一样使用 MATLAB。
% 这是注释,MATLAB会忽略它 % 定义一个变量 a a = 5 + 3 % 定义一个矩阵 B = [1, 2, 3; 4, 5, 6; 7, 8, 9] % 进行矩阵运算 C = B * a % 矩阵与标量相乘 D = B' % 矩阵转置 % 访问矩阵元素 % 第2行,第3列的元素 element = D(2, 3)
2 获取帮助
MATLAB 的帮助系统非常强大。
- 在命令窗口输入
help函数名,help plot,会显示该函数的基本用法和说明。 - 在命令窗口输入
doc函数名,doc plot,会打开更详细的帮助文档窗口(在R2012a中是独立的帮助浏览器)。
3 脚本文件 (.m文件)
对于复杂的任务,直接在命令窗口输入命令很不方便,我们应该使用脚本文件。

- 点击工具栏的 New Script (新建脚本) 按钮。
- 在打开的编辑器窗口中输入您的代码。
- 点击 Save (保存),并将其保存在您的 Current Folder 中,例如命名为
my_first_script.m。 - 点击编辑器工具栏的 Run (运行) 按钮,或在命令窗口输入
my_first_script来执行脚本。
示例 my_first_script.m:
% 这是一个简单的脚本文件
clear; % 清除工作区中的所有变量
clc; % 清空命令窗口
disp('Hello, MATLAB R2012a!'); % 显示文本
% 计算 1 到 100 的和
sum_result = sum(1:100);
fprintf('The sum of numbers from 1 to 100 is: %d\n', sum_result);
核心编程概念
1 变量与数据类型
- 变量名:区分大小写,必须以字母开头,可以包含字母、数字和下划线。
- 不需要声明类型:MATLAB 会自动根据您赋的值来确定变量的类型(如
double,logical,char等)。
x = 10; % double 类型 y = 'hello'; % 字符串 (char 类型) z = true; % 逻辑类型
2 矩阵与数组操作
MATLAB 的核心是矩阵,几乎所有操作都是针对矩阵的。
-
创建向量:
% 行向量 row_vec = [1 2 3 4 5]; % 列向量 col_vec = [1; 2; 3; 4; 5]; % 使用冒号运算符创建等差序列 v = 1:2:9 % 从1开始,到9结束,步长为2,结果: [1 3 5 7 9]
-
索引与切片:
(图片来源网络,侵删)A = magic(4) % 创建一个4x4的魔方阵 % 提取第2行 row_2 = A(2, :) % 提取第3列 col_3 = A(:, 3) % 提取一个子矩阵 (第2到3行, 第1到2列) sub_A = A(2:3, 1:2)
-
常用函数:
size(A): 获取矩阵 A 的尺寸。length(A): 获取向量 A 的长度(或矩阵最长维度的长度)。sum(A): 对矩阵 A 的列求和。mean(A): 对矩阵 A 的列求平均值。find(A > 5): 找出矩阵 A 中大于5的元素的索引。
3 控制流
-
if-elseif-else语句:score = 85; if score >= 90 grade = 'A'; elseif score >= 80 grade = 'B'; elseif score >= 70 grade = 'C'; else grade = 'D'; end disp(['Your grade is: ', grade]); -
for循环:% 计算 1 到 10 的阶乘 for n = 1:10 factorial_n = 1; for k = 1:n factorial_n = factorial_n * k; end fprintf('%d! = %d\n', n, factorial_n); end -
while循环:% 计算 2 的多少次方会超过 1000 power = 0; result = 1; while result <= 1000 power = power + 1; result = 2^power; end fprintf('2^%d = %d is greater than 1000.\n', power, result);
数据可视化
绘图是 MATLAB 的强项,R2012a 的绘图功能已经非常成熟。
1 基本二维绘图
-
plot函数:最基本的绘图函数。% 准备数据 x = 0:0.1:2*pi; % 从0到2π,步长为0.1 y = sin(x); % 创建一个新的图形窗口 figure; % 绘制曲线 plot(x, y, 'b-o'); % 'b-o' 表示蓝色实线,数据点用圆圈标记 % 添加标题和坐标轴标签'Sine Wave'); xlabel('x (radians)'); ylabel('sin(x)'); grid on; % 显示网格 legend('sin(x)'); % 添加图例 -
subplot函数:在同一个窗口中创建多个子图。x = 0:0.1:2*pi; y1 = sin(x); y2 = cos(x); figure; % 创建一个2行1列的子图,并激活第一个 subplot(2, 1, 1); plot(x, y1, 'r');'Sine Wave'); % 激活第二个子图 subplot(2, 1, 2); plot(x, y2, 'g');'Cosine Wave');
3 三维绘图
-
mesh和surf函数:绘制三维网格图和表面图。% 创建网格数据 [X, Y] = meshgrid(-2:0.1:2); Z = X .* exp(-X.^2 - Y.^2); % .* 表示逐元素相乘 figure; surf(X, Y, Z); % 表面图'3D Surface Plot'); xlabel('X-axis'); ylabel('Y-axis'); zlabel('Z-axis'); shading interp; % 使表面平滑
实践案例:从零开始解决一个简单问题
问题:给定一组学生的身高数据(单位:厘米),计算并可视化平均身高、最高和最矮的学生。
步骤:
-
创建脚本:新建一个脚本文件,命名为
student_height_analysis.m。 -
输入数据:在脚本中输入数据。
% student_height_analysis.m % 清理环境 clear; clc; % 学生的身高数据 (单位: cm) heights = [165, 172, 158, 180, 169, 175, 161, 178, 166, 170];
-
计算统计数据:
% 计算统计数据 avg_height = mean(heights); max_height = max(heights); min_height = min(heights); % 找出最高和最矮学生的索引 [~, max_idx] = max(heights); [~, min_idx] = min(heights);
注意:
[~, max_idx]这种写法是获取函数返回的第二个值而忽略第一个值的常用技巧。 -
显示结果:
% 在命令窗口显示结果 fprintf('班级学生身高分析:\n'); fprintf('----------------------------\n'); fprintf('平均身高: %.2f cm\n', avg_height); fprintf('最高身高: %d cm (第 %d 位学生)\n', max_height, max_idx); fprintf('最矮身高: %d cm (第 %d 位学生)\n', min_height, min_idx); fprintf('----------------------------\n'); -
可视化数据:
% 创建一个新的图形窗口 figure; % 绘制柱状图 bar(heights);'学生身高分布'); xlabel('学生编号'); ylabel('身高 (cm)'); grid on; % 在图上标出平均值线 hold on; % 保持当前图形,以便在其上添加新内容 yline(avg_height, 'r--', 'LineWidth', 2, 'DisplayName', '平均身高'); legend('show', 'Location', 'northwest'); hold off; % 释放保持状态 -
运行脚本:保存并运行
student_height_analysis.m,您将在命令窗口看到分析结果,并弹出一个包含柱状图的窗口。
学习资源与升级建议
学习资源
- 官方文档 (R2012a版):安装 MATLAB 时,帮助文档通常会被一同安装,您可以通过
doc命令访问,或者在开始菜单中找到它,这是最权威、最准确的学习资料。 - 在线社区:
- MATLAB Central (mathworks.com/matlabcentral):虽然旧帖可能不再被回复,但里面的很多教程和问答依然有价值。
- CSDN、博客园:搜索 "MATLAB R2012a 教程",可以找到很多国内用户分享的学习笔记和案例。
- 经典书籍:一些经典的MATLAB书籍,如《MATLAB从入门到精通》(虽然新版是基于新版本,但基础部分通用),可以作为参考。
升级建议
- 为什么建议升级?
- 性能优化:新版本在计算速度、内存管理上都有巨大提升。
- 新功能:引入了新的数据类型(如
string,datetime)、更强大的工具箱(如深度学习、机器学习工具箱)和更现代化的编程特性(如函数句柄、匿名函数的增强)。 - 兼容性:可以打开和运行更多由他人分享的现代代码。
- 界面友好:新版的编辑器、App 设计器等工具极大提升了开发效率。
- 如何获取新版本?
- 访问 MathWorks 官网 (mathworks.com),可以下载最新版本的试用版。
- 如果您是学生或教职工,通常可以通过学校的 校园网授权 免费使用最新版。
- 如果您是研究人员,可以申请 MATLAB 官方的科研许可。
希望这份针对 R2012a 的教程能帮助您顺利入门 MATLAB!祝您学习愉快!
