杰瑞科技汇

matlab教程 r2012a

MATLAB R2012a 基础入门教程

第一部分:初识 MATLAB

什么是 MATLAB?

MATLAB 的名字来源于 "MATrix LABoratory"(矩阵实验室),它是一种用于算法开发、数据可视化、数据分析以及数值计算的高级编程语言和技术计算环境。

matlab教程 r2012a-图1
(图片来源网络,侵删)
  • 核心优势:强大的矩阵运算能力。
  • 主要用途:工程计算、科学建模、算法分析、信号处理、图像处理、控制系统设计等。

MATLAB R2012a 工作界面

启动 MATLAB R2012a 后,你会看到以下几个主要窗口:

  • Command Window (命令窗口):这是你与 MATLAB 交互的主要地方,你可以在这里直接输入命令,并立即看到结果。
  • Current Folder (当前文件夹):显示当前 MATLAB 正在工作的文件夹,你可以在这里看到所有文件和文件夹,类似于 Windows 的资源管理器。
  • Workspace (工作区):显示当前工作内存中所有变量的名称、值、大小和类型,你在命令窗口创建的变量都会出现在这里。
  • Command History (命令历史记录):记录你在命令窗口输入过的所有命令,方便你重复使用之前的命令。

如何获取帮助?

MATLAB 自带非常强大的帮助文档,学会使用帮助是学习 MATLAB 的关键。

  • help 命令:在命令窗口输入 help 加上函数名,可以查看该函数的简要帮助信息。
    help plot
  • doc 命令:在命令窗口输入 doc 加上函数名,会打开一个详细的 HTML 帮助文档窗口,包含更丰富的示例和说明。
    doc plot
  • 帮助浏览器:点击界面顶部的 Help 菜单,选择 Product Help...,可以打开独立的帮助浏览器,浏览所有文档。

第二部分:MATLAB 基础操作

变量与赋值

MATLAB 中的变量不需要预先声明类型,变量名区分大小写。

% 创建一个变量 a 并赋值为 5
a = 5;
% 创建一个字符串变量
b = 'Hello, MATLAB';
% 创建一个复数变量
c = 3 + 4i;

基本运算符

MATLAB 支持所有标准的算术运算符。

matlab教程 r2012a-图2
(图片来源网络,侵删)
运算符 描述 示例
加法 5 + 3
减法 10 - 4
乘法 2 * 6
除法 10 / 2
^ 幂运算 2^3 (即 2 的 3 次方)
sqrt() 平方根 sqrt(9)
x = 10;
y = 3;
result = x / y + 2^y; % 结果为 10/3 + 8 ≈ 11.3333
disp(result);

向量和矩阵

这是 MATLAB 的核心,MATLAB 中的一切都是矩阵(标量是 1x1 矩阵,向量是 1xN 或 Nx1 矩阵)。

创建向量 (1D 数组)

% 创建一个行向量
v1 = [1, 2, 3, 4, 5];
% 创建一个列向量
v2 = [1; 2; 3; 4; 5];
% 使用冒号运算符创建等差序列
v3 = 1:2:9; % 从 1 开始,每次加 2,直到不超过 9,结果为 [1, 3, 5, 7, 9]
v4 = linspace(1, 10, 5); % 在 1 到 10 之间创建 5 个等间距的点,结果为 [1, 3.25, 5.5, 7.75, 10]

创建矩阵 (2D 数组)

% 直接输入
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
% 结果:
%     1     2     3
%     4     5     6
%     7     8     9
% 使用函数创建
B = zeros(2, 3); % 创建一个 2 行 3 列的全零矩阵
C = ones(3, 2);  % 创建一个 3 行 2 列的全一矩阵
D = rand(2, 2);  % 创建一个 2 行 2 列的随机矩阵 (0-1之间均匀分布)

矩阵索引

matlab教程 r2012a-图3
(图片来源网络,侵删)

访问矩阵中的元素使用 行号, 列号 的格式。

A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
% 访问第 2 行,第 3 列的元素
element = A(2, 3); % element 的值为 6
% 访问第 1 整行
row1 = A(1, :); % row1 的值为 [1, 2, 3]
% 访问第 2 整列
col2 = A(:, 2); % col2 的值为 [2; 5; 8]

第三部分:脚本与函数

创建脚本 (Script)

脚本是一系列 MATLAB 命令的集合,保存在 .m 文件中,当你运行脚本时,MATLAB 会按顺序执行其中的所有命令。

如何创建脚本:

  1. 点击工具栏的 New Script 按钮。
  2. 在打开的编辑器中输入代码。
  3. 点击 Save,并将其保存在你的当前文件夹中(命名为 my_first_script.m)。

示例脚本 (my_first_script.m):

% 这是一个简单的脚本,用于计算并绘制正弦波
% 清空命令窗口和工作区
clc;
clear;
% 创建一个从 0 到 4π 的向量,步长为 0.1
x = 0:0.1:4*pi;
% 计算正弦值
y = sin(x);
% 绘制图形
plot(x, y);
和坐标轴标签'正弦波图');
xlabel('x');
ylabel('sin(x)');
grid on; % 添加网格

运行脚本后,命令窗口会显示执行过程,并弹出一个图形窗口。

创建函数 (Function)

函数是接受输入参数、执行特定任务并返回输出值的独立代码块,它们是模块化编程的基础。

函数的基本结构:

function [输出参数1, 输出参数2, ...] = 函数名(输入参数1, 输入参数2, ...)
    % 函数的第一行是函数签名
    % 注释部分 (可选但推荐)
    % 函数体 (代码)
    % 将结果赋值给输出参数
end

示例函数 (calculate_average.m):

function [avg, sum_val] = calculate_average(numbers)
    % 计算一个向量的平均值和总和
    %
    % 输入:
    %   numbers - 一个数值向量
    %
    % 输出:
    %   avg     - 平均值
    %   sum_val - 总和
    % 计算总和
    sum_val = sum(numbers);
    % 计算平均值
    avg = sum_val / length(numbers);
end

如何调用函数: 在命令窗口或脚本中调用:

% 创建一个测试向量
my_data = [10, 20, 30, 40, 50];
% 调用函数,只获取平均值
mean_value = calculate_average(my_data);
disp(['平均值是: ', num2str(mean_value)]);
% 调用函数,同时获取平均值和总和
[mean_val, total_sum] = calculate_average(my_data);
disp(['平均值是: ', num2str(mean_val), ',总和是: ', num2str(total_sum)]);

第四部分:数据可视化

基本绘图函数

plot 是最常用的绘图函数。

示例:绘制两条曲线

% 清空图形窗口
clf;
% 创建 x 数据
x = 0:0.01:2*pi;
% 创建 y1 和 y2 数据
y1 = sin(x);
y2 = cos(x);
% 绘制第一条曲线 (蓝色实线)
plot(x, y1, 'b-');
% 保持当前图形,以便在其上叠加新的曲线
hold on;
% 绘制第二条曲线 (红色虚线)
plot(x, y2, 'r--');
% 添加图例
legend('sin(x)', 'cos(x)');
和标签'正弦和余弦函数');
xlabel('x (弧度)');
ylabel('y值');
% 释放图形
hold off;

常用绘图选项:

  • 'b': 蓝色
  • 'r': 红色
  • 'g': 绿色
  • 实线
  • 虚线
  • 点线
  • 星号标记点
  • 'o': 圆圈标记点

其他绘图函数

  • bar(x, y): 绘制条形图。
  • scatter(x, y): 绘制散点图。
  • histogram(y): 绘制直方图。
  • surf(X, Y, Z): 绘制三维曲面图。

第五部分:控制流

MATLAB 使用与其他编程语言类似的结构来控制代码的执行流程。

if-elseif-else 语句

score = 85;
if score >= 90
    disp('成绩: A');
elseif score >= 80
    disp('成绩: B');
elseif score >= 70
    disp('成绩: C');
else
    disp('成绩: D 或 F');
end

for 循环

% 计算 1 到 10 的累加和
sum = 0;
for i = 1:10
    sum = sum + i;
end
disp(['1到10的和是: ', num2str(sum)]);

while 循环

% 计算一个数的阶乘
n = 5;
factorial = 1;
i = 1;
while i <= n
    factorial = factorial * i;
    i = i + 1;
end
disp(['5的阶乘是: ', num2str(factorial)]);

第六部分:实用技巧与总结

  1. 分号 :在语句末尾使用分号可以禁止在命令窗口显示该语句的输出结果,对于大型矩阵或循环,使用分号可以避免输出刷屏。
  2. clc:清空命令窗口。
  3. clear:清空工作区中的所有变量。
  4. who:列出工作区中的所有变量名。
  5. whos:列出工作区中所有变量的详细信息(名称、大小、字节、类型)。
  6. disp():在命令窗口显示文本或变量的值。
  7. num2str():将数字转换为字符串,方便与文本一起显示。

这份教程涵盖了 MATLAB R2012a 的最核心的基础知识,学习编程最好的方法就是多动手实践

  • 从模仿开始:尝试运行教程中的所有示例代码,并修改其中的参数,看看结果有什么不同。
  • 解决小问题:尝试用 MATLAB 解决一些简单的数学问题,比如计算斐波那契数列、求解二次方程等。
  • 逐步深入:掌握了基础后,可以开始学习更高级的主题,如文件 I/O、符号计算、Simulink 仿真等。

虽然 R2012a 版本老旧,但打好这个基础后,你将能够非常平滑地过渡到任何新版本的 MATLAB,祝你学习愉快!

分享:
扫描分享到社交APP
上一篇
下一篇