杰瑞科技汇

MATLAB实例教程,从入门到实践怎么学?

MATLAB 实例教程:从入门到实践

MATLAB (Matrix Laboratory) 是一款功能强大的商业数学软件,主要用于算法开发、数据可视化、数据分析以及数值计算,其核心特点是使用矩阵作为基本运算单位,这使得科学计算变得异常简洁高效。

第一部分:MATLAB 基础入门

1 MATLAB 工作环境

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

  • 命令行窗口:这是你与 MATLAB 交互的主要地方,在这里输入命令,并查看输出结果。
  • 当前文件夹:显示当前 MATLAB 正在操作的文件夹,你可以在这里看到脚本、函数和数据文件。
  • 工作区:显示当前内存中所有变量的名称、大小和值,你可以在这里创建、修改和删除变量。
  • 编辑器:用于编写和调试脚本(.m 文件)和函数。

2 基本运算与变量

MATLAB 的语法非常直观,类似于数学表达式。

实例 1.1:基本算术运算

% 在命令行窗口中直接输入以下内容
% 加法
5 + 3
% 减法
10 - 4
% 乘法
6 * 7
% 除法
15 / 3
% 幂运算
2 ^ 10

实例 1.2:创建和使用变量

% 创建变量并赋值
a = 10;
b = 20;
c = 'Hello, MATLAB';
% 在工作区中可以看到变量 a, b, c
% 使用变量进行计算
sum_result = a + b;
disp(sum_result); % 使用 disp 函数显示结果
% 变量也可以存储矩阵(数组)
x = [1, 2, 3, 4, 5];
y = [2; 4; 6; 8; 10];
% 查看变量的详细信息
whos a x

符号:用于表示注释,MATLAB 会忽略它,写注释是编程的好习惯。

3 矩阵与数组操作

这是 MATLAB 的核心。

实例 1.3:创建矩阵

% 创建一个 2x3 的矩阵(2行3列)
A = [1, 2, 3; 4, 5, 6]
% 创建一个 3x3 的单位矩阵
I = eye(3)
% 创建一个全为 1 的 2x4 矩阵
ones_matrix = ones(2, 4)
% 创建一个全为 0 的 3x2 矩阵
zeros_matrix = zeros(3, 2)
% 创建一个线性等间距的向量
% 语法: linspace(起始值, 结束值, 元素个数)
v1 = linspace(0, 10, 5) % 生成 [0, 2.5, 5, 7.5, 10]
% 创建一个等间隔的向量
% 语法: 起始值:步长:结束值
v2 = 1:2:9 % 生成 [1, 3, 5, 7, 9]

实例 1.4:访问矩阵元素

A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
% 访问单个元素
% 语法: 矩阵名(行号, 列号)
element = A(2, 3) % 获取第2行第3列的元素,结果为 6
% 访问整行或整列
% 冒号 : 表示所有
row_2 = A(2, :) % 获取第2行的所有元素,结果为 [4, 5, 6]
col_1 = A(:, 1) % 获取第1列的所有元素,结果为 [1; 4; 7]
% 使用逻辑索引(非常重要!)
% 找出 A 中所有大于 5 的元素
large_elements = A(A > 5)

4 基本绘图

MATLAB 拥有出色的绘图功能。

实例 1.5:绘制正弦函数

% 1. 准备数据
x = linspace(0, 2*pi, 100); % 从 0 到 2π 生成 100 个点
y = sin(x); % 计算 x 对应的正弦值
% 2. 创建图形窗口
figure;
% 3. 绘制曲线
plot(x, y);
% 4. 添加标题和坐标轴标签'正弦函数曲线');
xlabel('x 轴 (弧度)');
ylabel('y 轴 (sin(x))');
grid on; % 显示网格

运行这段代码,会弹出一个包含正弦曲线的窗口。


第二部分:进阶主题与实例

1 脚本文件 (.m 文件)

当命令变得复杂时,你应该将它们保存在脚本文件中,以便重复使用。

实例 2.1:创建一个绘制多条曲线的脚本

  1. 在 MATLAB 编辑器中,点击 新建脚本
  2. 将以下代码粘贴进去:
% 文件名: plot_multiple_curves.m
% 清理工作区和命令窗口
clear;
clc;
% 准备数据
x = linspace(0, 2*pi, 200);
% 计算 y1 = sin(x) 和 y2 = cos(x)
y1 = sin(x);
y2 = cos(x);
% 创建新的图形窗口
figure;
% 在同一个坐标轴上绘制两条曲线
plot(x, y1, 'r-', x, y2, 'b--');
% 添加图例
legend('sin(x)', 'cos(x)');
和标签'正弦和余弦函数');
xlabel('x 轴');
ylabel('y 轴');
grid on;
axis([0 2*pi -1.2 1.2]); % 设置坐标轴范围
  1. 点击 保存,将文件命名为 plot_multiple_curves.m
  2. 在命令行窗口输入 plot_multiple_curves 并按回车,运行脚本。

2 条件语句与循环

实例 2.2:使用 if-elsefor 循环

% --- 使用 for 循环 ---
% 计算 1 到 10 的累加和
sum_result = 0;
for i = 1:10
    sum_result = sum_result + i;
end
disp(['1到10的和是: ', num2str(sum_result)]);
% --- 使用 if-else 语句 ---
% 判断一个数是正数、负数还是零
num = -5;
if num > 0
    disp('这个数是正数。');
elseif num < 0
    disp('这个数是负数。');
else
    disp('这个数是零。');
end

3 函数文件

函数是封装可重用代码的强大工具。

实例 2.3:创建一个计算平均值的函数

  1. 在编辑器中,点击 新建 -> 函数
  2. 将代码修改如下:
% 文件名: my_average.m
function avg = my_average(numbers)
% my_average 计算一个向量的平均值
% 输入:
%   numbers - 一个数值向量
% 输出:
%   avg - 该向量的平均值
% 检查输入是否为空
if isempty(numbers)
    error('输入向量不能为空!');
end
% 计算平均值
avg = sum(numbers) / length(numbers);
end
  1. 保存为 my_average.m
  2. 在命令行窗口中调用这个函数:
% 创建一个测试向量
test_scores = [88, 92, 76, 99, 85];
% 调用函数
average_score = my_average(test_scores);
% 显示结果
disp(['平均分是: ', num2str(average_score)]);

第三部分:综合实例:数据分析与可视化

这是一个更完整的实例,展示如何读取数据、处理数据并生成可视化报告。

场景:我们有一个名为 sales_data.csv 的文件,包含某公司过去一年的月销售额,我们想读取数据,计算月平均销售额,并绘制趋势图。

准备数据文件

创建一个名为 sales_data.csv 的文本文件,内容如下(注意逗号分隔):

Month,Sales
January,12000
February,15000
March,18000
April,16000
May,22000
June,25000
July,28000
August,26000
September,24000
October,30000
November,32000
December,35000

将这个文件保存在你的 MATLAB 当前文件夹 中。

编写主脚本

创建一个新的脚本文件,analyze_sales.m,并输入以下代码:

% --- 脚本: analyze_sales.m ---
% 功能: 分析销售数据并生成可视化报告
% 清理环境
clear;
clc;
close all; % 关闭所有已打开的图形窗口
% --- 1. 数据读取 ---
% 使用 readtable 函数读取 CSV 文件
% 假设 sales_data.csv 在当前文件夹中
try
    sales_table = readtable('sales_data.csv');
    disp('数据读取成功!');
catch ME
    disp(['错误: 无法读取文件。', ME.message]);
    return; % 如果读取失败,则终止脚本
end
% --- 2. 数据处理 ---
% 提取销售额数据到向量中
sales_vector = sales_table.Sales;
% 计算总销售额和平均销售额
total_sales = sum(sales_vector);
average_sales = mean(sales_vector);
% 计算每个月相对于平均销售额的百分比
sales_percentage = (sales_vector / average_sales) * 100;
% --- 3. 数据可视化 ---
% 创建一个新的图形窗口,准备绘制两个子图
figure('Name', '年度销售分析报告', 'NumberTitle', 'off');
% --- 子图 1: 月度销售额趋势 ---
subplot(2, 1, 1); % 创建一个 2行1列的图,并激活第1个
plot(sales_table.Month, sales_vector, '-o', 'LineWidth', 2, 'MarkerSize', 8);'月度销售额趋势图', 'FontSize', 14);
xlabel('月份');
ylabel('销售额 (元)');
grid on;
% 自动调整 x 轴标签,使其不重叠
xticks(1:12);
xticklabels(sales_table.Month);
set(gca, 'XTickLabelRotation', 45); % 旋转45度
% --- 子图 2: 销售额占比 ---
subplot(2, 1, 2); % 激活第2个子图
bar(sales_percentage);'各月销售额占年平均值的百分比', 'FontSize', 14);
xlabel('月份');
ylabel('百分比 (%)');
grid on;
% 同样调整 x 轴标签
xticks(1:12);
xticklabels(sales_table.Month);
set(gca, 'XTickLabelRotation', 45);
% --- 4. 在命令行输出关键结果 ---
disp('-----------------------------------');
disp('年度销售分析报告');
disp(['总销售额: ', num2str(total_sales), ' 元']);
disp(['平均月销售额: ', num2str(average_sales), ' 元']);
disp('-----------------------------------');

运行脚本

在 MATLAB 的当前文件夹中确保 sales_data.csv 文件存在,然后在命令行窗口输入 analyze_sales 并运行。

你会看到以下输出和图形:

命令行输出:

数据读取成功!
-----------------------------------
年度销售分析报告
总销售额: 263000 元
平均月销售额: 21916.7 元
-----------------------------------

生成的图形:


第四部分:学习资源与建议

  1. 官方文档 (MATLAB Help):MATLAB 自带的帮助文档是最好的学习资源,按 F1 键或在命令行输入 doc 即可打开,它包含所有函数的详细说明、示例和教程。
  2. MATLAB 官方示例:在主页的“示例”部分,你可以找到大量针对不同应用领域的实例代码。
  3. 在线课程平台
    • MathWorks 官方课程:MATLAB Onramp,一个免费的交互式入门课程。
    • Coursera / edX:许多大学提供基于 MATLAB 的工程和科学计算课程。
  4. 社区与博客
    • MATLAB Central:包含 File Exchange(代码分享)、Answers(问答社区)和 Blogs(博客)。
    • CSDN、知乎等中文社区:有大量中文教程和经验分享。

学习建议:

  • 动手实践:不要只看,一定要亲手敲代码,修改参数,看看结果有什么不同。
  • 从简单开始:先掌握基本操作,再逐步挑战复杂的项目。
  • 学会使用 helpdoc:遇到不懂的函数,第一时间查阅官方文档。
  • 多看别人的代码:在 File Exchange 或 GitHub 上阅读优秀代码,学习编程技巧和风格。

希望这份详细的教程能帮助你顺利开启 MATLAB 的学习之旅!祝你学习愉快!

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