news 2026/10/17 20:24:23

MATLAB零基础入门教程:从界面到脚本与绘图

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MATLAB零基础入门教程:从界面到脚本与绘图

MATLAB 这玩意儿,刚接触时真能让人原地劝退。第一次打开,满屏英文菜单、乱七八糟的面板,命令行里光标一闪一闪,好像你在键盘上敲什么都可能报错。但其实把它想简单一点就行:MATLAB 就是一个“计算器 + 编程本 + 画图板”三合一的工具,你在纸上怎么算,在它里面就怎么敲,只不过它算得快、画图好看、改起来方便。这篇东西就是写给纯零基础的人,不扯线性代数推导,不整花哨的仿真案例,就老老实实把“怎么打开、怎么敲命令、怎么写第一个脚本、怎么画第一张图、报错了怎么办”讲清楚。有编程经验的人可以跳过界面部分直接看矩阵和调试,纯小白建议从头顺着读一遍,再照着敲一遍,比光看强得多。

先说说我自己的体会:很多教材上来就甩一大串函数名,告诉你这个是干什么的、那个是干什么的,看完一头雾水。真正有效的路径是——先跑通一个完整的小流程,比如“造一组数据 → 算个平均值 → 画个图 → 存成文件”,只要这条链路走通一次,MATLAB 的基本操作就有七成上手了。接下来的内容基本都是沿着这条路展开的。

1. 先别急着敲代码:把界面认清楚

1.1 五个核心区域分别是什么

MATLAB 的默认界面(R2020 之后的版本)长得很像现代办公软件,五个区域搞清楚,你就不会再觉得慌了:

  • 当前文件夹(Current Folder):左边这一栏,显示你工作目录里的文件。你写的脚本、数据文件都在这里能看到。刚安装完默认目录一般是用户文件夹下的 MATLAB 文件夹,建议在这里建一个自己的项目文件夹,不然文件散得到处都是。
  • 编辑器(Editor):中间最大的区域。写脚本、写函数都在这,类似 Word 但它是纯代码界面。第一次打开时这个区域可能不显示,你点工具栏的“新建脚本”就会弹出来。
  • 命令行窗口(Command Window):大多数人认识的 MATLAB 就是它。语法是>>,你输入一行、回车,它立刻算一行,适合做实验、查函数、跑小命令。
  • 工作区(Workspace):右上角。你算出来的变量都存在这里,双击变量还能打开表格看数据,排查问题的时候非常有用。
  • 详细信息(Details):右下角,选中工作区某个变量时这里会显示它的类型、大小、存储空间。

注意:新手最常见的困惑是“我的脚本跑出来怎么没反应?”——先看一眼你是在编辑器里按了运行,还是在命令行一行行敲。命令行里敲a = 1会直接回显结果,脚本里如果每行末尾有分号,运行后不会有输出,这不是没执行,是分号把回显关了。

1.2 上手前建议先改的两个默认设置

我每次在新电脑装完 MATLAB,第一件事就是改两个设置,能省掉后面大量麻烦。

第一个是当前文件夹。默认情况下 MATLAB 打开后会在你上次退出的目录,这会让你找不到脚本。点工具栏的“主页 → 设置路径”,把你常用的工作文件夹加到路径列表里,或者更简单——每次打开后先cd到你建好的文件夹,养成习惯。第二个是编辑器字体与行号。“预设”里把字体调成等宽字体、字号放大一点,并在编辑器里打开“显示行号”。报错的时候行号是最重要的定位线索,没有行号的报错提示等于让你在整篇代码里大海捞针。

提示:还有一个容易被忽略的——把“退出时记住工作区变量”这个选项关掉(或者干脆养成clear的习惯)。不然你某天打开 MATLAB,发现工作区里躺着一堆上次遗留的变量,而这些变量你这次根本没定义,脚本运行结果就会变得莫名其妙。

2. 最常用的基础指令:会这些就能干活了

2.1 变量赋值与数据类型

MATLAB 里变量赋值极其简单,就是变量名 = 值:

a = 1; % 数值 b = 'hello'; % 字符串,注意是单引号 c = [1 2 3]; % 行向量,空格或逗号分隔 d = [1; 2; 3]; % 列向量,分号表示换行 e = [1 2; 3 4]; % 2行2列矩阵

这里有两个关键点。第一,变量名区分大小写,a和A是两个不同的变量,新手在这上面吃过不少亏。第二,分号不只是换行。在命令行窗口,不加分号回车会立刻把结果显示出来;加分号表示“执行但不要回显”。写脚本的时候,如果每行都加分号,运行界面干干净净,只在你有意输出的地方才不加分号。

数据类型方面,新手阶段你只要记住几种:

  • double:默认数值类型,所有小数、整数默认都是它。
  • char和string:文本类型。char是单引号包裹的字符数组,string是双引号包裹的字符串对象。早期课程和旧函数多用char,新代码用string更方便。
  • logical:逻辑类型,就是true/false,比较运算和条件判断的结果。
  • cell:细胞数组,用大括号{}创建,可以往里面塞不同类型的数据,比如{1, 'a', [2 3]}。它就像一个“杂货箱”,以后处理混合数据时离不开。

2.2 矩阵操作:MATLAB 的灵魂

MATLAB 全名叫 Matrix Laboratory,矩阵实验室。它最核心的思维方式就是“一切皆矩阵”——单个数值是 1×1 的矩阵,一列数据是列向量,一张灰度图是 M×N 的矩阵。理解这一点,你就能理解为什么 MATLAB 在很多计算任务里比其他工具顺手:你不用写循环去遍历元素,直接对整个矩阵做运算就行。

比如你有一组考试成绩向量scores = [78 92 85 66 88],想算平均分、最高分、有多少人及格,三行命令:

mean(scores) % 平均分 max(scores) % 最高分 sum(scores >= 60) % 比较运算生成逻辑向量,再加和

sum(scores >= 60)这行是经典中的经典——先做比较,得到一个由true/false组成的逻辑数组,true在数值运算里当 1 用,求和就是及格人数。这个思路在后续任何“统计满足条件的个数”场景里都通用。

再看矩阵索引。这是新手最容易懵的地方,因为 MATLAB 的下标从 1 开始,和很多从 0 开始的编程语言不一样。设M = [10 20 30; 40 50 60]:

M(1,2) % 第1行第2列,结果是 20 M(2,:) % 第2行所有列,结果是 [40 50 60] M(:,1) % 第1列所有行,结果是 [10; 40] M(1:2, 2:3) % 第1到2行、第2到3列的子矩阵 M(end, 1) % 最后一行的第1列,end 表示末尾

end是 MATLAB 特有的关键字,表示“这一维度的最后”,在很多场景里能省去先获取尺寸再索引的麻烦。另一种常见取法是用冒号把矩阵拉成一个长列向量:M(:)会把所有元素按列优先顺序排成一列,有时候处理数据排序和重塑时很实用。

2.3 常用数学函数与向量化思维

数学函数名基本和习惯写法一致:sin、cos、exp、log、sqrt、abs、round、floor、ceil。要注意log在 MATLAB 里是自然对数,log10、log2才是对应底数。这个坑我见过太多人踩——在 MATLAB 里算常用对数却用了log,结果数值对不上。

向量化思维是指不要写循环去逐个元素操作,而是直接用函数对整组数据操作。比如生成 0 到 6 范围内每隔 0.1 取一个点的正弦值:

x = 0:0.1:6; % 等差序列,从0到6,步长0.1 y = sin(x); % 直接得到和x同样长度的向量

这个写法比 for 循环快几个数量级,而且代码短、不容易写错。等你以后做数据分析、图像处理,会发现“能向量化就别写循环”是 MATLAB 的一条黄金法则。不仅仅是速度问题,代码可读性也高很多。

3. 脚本的完整实操流程:从新建到运行

3.1 新建脚本、保存与运行

写稍微复杂一点的东西就别在命令行一行行敲了,用编辑器写脚本。点“新建脚本”或按Ctrl+N,编辑器打开后输入:

% 我的第一个脚本 x = 0:0.1:2*pi; y = sin(x); plot(x, y);

保存时注意文件名:不要用中文,不要有空格,不要以数字开头,避免和朋友的名字同名。比如my_first_plot.m就规范。另外文件名不能和 MATLAB 内置函数同名,比如你保存成plot.m,MATLAB 会懵掉——运行时它分不清你是要调用内置 plot 还是自己写的这个文件。

运行脚本有三种方式:在编辑器里点绿色“运行”按钮;按F5;在命令行窗口输入文件名(不带 .m)。第三种方式是命令行最基本的交互逻辑:你要运行某个脚本,就在>>后面敲它的名字。脚本正常运行后,代码里创建的变量都会出现在工作区,方便你检查每一步中间结果。

3.2 注释、分号与调试技巧

注释用%,这一行在%后面的内容不会被执行。写注释的作用不只是以后别人看懂你的代码,更是让一周后的你自己看懂。我见过太多同学写作业时注释写得很全,期末回来复习一看代码,连自己都快认不出来了。

调试是新手最需要的技能,但很少人主动教。最简单的调试流程分三步:

  1. 代码运行出错后,看命令行窗口的红色报错信息,从最底部往上找,最后一行往往是真正原因。
  2. 点击报错中提到的那一行右侧的数字,设置断点——一个红色圆点。运行脚本程序会在这个断点处暂停。
  3. 暂停后把鼠标悬停在变量名上,就能看到当前这个变量的值。用“步进”按钮可以一行一行执行,观察每个变量的变化过程。

经验:新手调试最大的误区是“盯着代码看,试图用肉眼找出逻辑错误”。代码是写给机器执行的,不是写给人眼做静态分析的。与其盯着看,不如把中间变量打出来、用断点单步走一遍,数据到了哪一步不对,问题基本就在那附近。这个方法在 MATLAB 里反复用,排查速度能翻好几倍。

3.3 实时脚本(Live Script)适合什么时候用

MATLAB 从 R2016a 开始引入了实时脚本(.mlx文件),界面更接近 Word,代码和结果、图表混排显示,而且有分节执行功能。带分节符的实时脚本可以只运行某一节,不用每次从头跑全部代码,做数据探索和课程报告非常爽。

但我的建议是:基础学习阶段还是用普通脚本.m。因为实时脚本的交互方式会掩盖一些执行逻辑的细节,比如变量的生命周期、代码执行顺序,而且很多老教程和网上的参考代码用的都是.m。等到你对 MATLAB 的基本流程有把握了,再用.mlx做演示和报告,效率更高。工具没有好坏,只有时机对不对。

4. 画图入门:让数据自己说话

4.1 plot 函数的正确打开方式

plot是 MATLAB 里使用频率最高的绘图函数。最基础用法就是两个等长向量:

x = 0:0.1:2*pi; y = sin(x); plot(x, y);

这样会弹出一个独立的图形窗口,默认用蓝色实线画。想改颜色、线型、标记符,用第三个参数,比如'r--o'表示红色虚线加圆圈标记。常见控制符有:

控制符含义控制符含义
b蓝色-实线
r红色--虚线
g绿色:点线
k黑色-.点划线
o圆圈标记*星号标记
s方块标记^上三角标记

另一个高频场景是在同一张图里画多条曲线。最简单的做法是连续调用plot,但默认每次都会新开一个图形窗口,把上一次覆盖掉。解决办法是用hold on:

plot(x, sin(x), 'b-'); hold on; plot(x, cos(x), 'r--'); hold off; legend('sin', 'cos');

hold on的意思是“在当前图形上继续叠加绘制”,hold off恢复默认行为。很多新报错“我画了两条线怎么只剩一条”,绝大部分情况就是忘了hold on,或者用了它之后没hold off导致后续的图全部叠在一起。画完图记得加标题、坐标标签和图例:

title('正弦与余弦曲线'); xlabel('x'); ylabel('y'); grid on; % 打开网格,方便读数

4.2 图像修饰与导出

画完图之后,图形窗口顶部菜单上可以直接编辑:加标题、改坐标范围、插入文字。不过更推荐用命令控制,因为可复现、可批处理。常用两个函数:xlim([a b])和ylim([a b])手动控制坐标轴范围;text(x, y, '内容')在指定坐标处加文字标注。

保存图片的方式有讲究。最快捷的是在图形窗口菜单栏点“保存”,但默认格式清晰度一般。做报告时我一般用命令导出:

saveas(gcf, 'my_plot.png'); print('-dpng', '-r300', 'my_plot_highres.png'); % 300dpi高清

gcf是 get current figure 的缩写,指当前图形窗口。-r300指定 300 分辨率,用来打印和正式报告足够。新手最容易忽略的问题是图片中文字太小——默认字号在投影和打印时经常看不清。养成习惯,绘图命令里带上字号参数,比如xlabel('x', 'FontSize', 12),或者直接用set(gca, 'FontSize', 12)把整个坐标轴的字号统一调大。

5. 常见报错与问题排查:这些坑我全踩过

5.1 高频报错速查表

报错信息原因解决办法
Undefined function or variable 'xxx'变量名拼错、变量还没定义、函数文件名不对劲检查拼写;确认代码里先定义了该变量;检查工作区变量是否被clear
Index exceeds matrix dimensions索引超过矩阵范围用size看矩阵维度,检查索引变量数值
Error using plot, Vectors must be the same lengthplot 的两个向量长度不一致用length(x)和length(y)比对长度
Input must be a valid matlab expression命令行里输入了中文符号或格式问题确认所有括号、引号都是英文半角
Matrix dimensions must agree矩阵运算维度不匹配检查两个参与运算的矩阵大小是否能相乘/相加

5.2 三个最容易踩的隐蔽坑

第一个坑是中文输入法问题。MATLAB 里所有标点符号必须是英文半角,但中文输入法动不动就把逗号、括号、引号变成全角,代码复制进去直接报错。报错信息还不容易看懂,因为它只提示“表达式无效”。我的习惯是在写代码时切换成纯英文输入法,或者至少注意输完标点后看一眼颜色——MATLAB 编辑器里,字符串是粉色的,注释是绿色的,代码是黑色的。如果引号颜色不对,多半是输入法导致符号出问题了。

第二个坑是变量名覆盖内置函数。当你写了mean = 5之后,再去调用内置的mean函数求平均值,MATLAB 不会报错,但会把 5 当函数用——然后报一个让你摸不着头脑的错误。原因是 MATLAB 变量优先级高于内置函数。排查的方法很简单:在工作区看有没有奇怪的变量名,用clear mean删掉你这个变量就恢复正常了。

第三个坑是路径问题。明明脚本保存在某个文件夹,在命令行里输入文件名却说找不到。八成原因是 MATLAB 当前路径不在那个文件夹下。记住:pwd查看当前路径,cd切换路径,dir查看当前目录下的文件。写完脚本把文件放在当前文件夹,或者用addpath添加路径,才能保证运行顺畅。

提示:还有一个看起来不起眼但很实用的技巧——clear all通常在每次运行脚本前都会敲一遍。它会把工作区变量全部清空,避免上一次遗留变量影响本次运行结果。不过注意clear all也会清除断点,调试时谨慎使用,改用clear(只清变量)就行。

6. 一个能帮你提速十倍的工作习惯

最后分享一个我用了很久的习惯:建立一个“代码片段库”。刚学 MATLAB 时,每次用到“读取 Excel 数据”“画多条曲线”“统计分组均值”这些常规操作,都得临时翻教程。后来我把常用的代码块整理成一个my_notes.m脚本,按节分区写,需要用的时候直接复制,再改参数就行。

这个文件里通常包括:读取和写入文件的标准代码、绘图的完整模板(含字号、标题、网格、图例)、常用统计函数的示例、以及我自己踩坑后的注释。这样做的好处不只是省时间——每次复制自己的旧代码,你都在强化对基本语法的记忆,还能不断发现代码可以优化的地方。

新手阶段最容易犯的毛病是“收藏了一大堆教程,却从来没有自己完整敲过一个脚本”。MATLAB 和游泳、骑自行车一样,看十遍不如上手一次。照着我前面说的流程,从生成数据、算统计量、画图、保存图片,完整走一遍,你就能脱离“看着教程才敢敲代码”的状态。等到你再往深处走,无论是做数据处理、图像处理还是数值计算,前面打好的这些底子都会成为最坚实的基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 20:23:24

遥感影像匀色镶嵌分幅处理全流程详解与常见问题排查

简介:面向遥感影像处理与GIS领域从业者的实操手册,系统讲解影像匀色、镶嵌与分幅的完整处理流程,重点结合MCM智拼图V8软件演示各环节操作,适合需要解决多源影像色彩不一致、大范围拼接与图幅拆分等问题的技术人员使用。资源以单个…

作者头像 李华
网站建设 2026/10/17 20:21:15

密码学C/C++实现:大整数基本运算函数详解与优化

1. 从"能跑就行"到"跑得放心":为什么密码学库的基本运算函数值得单独拎出来说很多人第一次接触密码学C/C实现,都是从"调库"开始的——OpenSSL里一个EVP_EncryptInit就完事了,谁还关心底层大数加减乘除怎么写的…

作者头像 李华
网站建设 2026/10/17 20:17:32

Ranger Admin 2.0 tar包部署实战:从解压到策略落地全流程

简介:Ranger Admin 2.0 的预编译 tar 包,面向需要快速搭建 Ranger 管控控制台的大数据平台运维人员与安全管理员。鉴于多数文章只给安装说明,完整源码编译往往耗时较长,此包直接提供编译后的 admin 控制台,省去环境配置…

作者头像 李华
网站建设 2026/10/17 20:10:02

纯原生JavaScript+Flex布局实现疫情信息页实战

1. 项目概述:为什么一个“疫情信息页面”值得用 Flex 原生 JS 重写?Flex 布局和纯原生 JavaScript——这两个词在2024年听起来有点“复古”,但恰恰是这种看似基础的组合,构成了前端工程中最扎实的肌肉记忆。我最近在带某高校前端…

作者头像 李华
网站建设 2026/10/17 20:07:39

用数据分析思路拆解游戏产业报告:从PDF提取到决策依据

简介:伽马数据出品的《2025年中国游戏产业趋势及潜力分析报告》PDF为单个文件,文件大小4.65MB,便于保存与阅读。报告紧扣2024年中国游戏市场及自研出海双创新高的节点,从市场现状、重点趋势、用户反馈三个层面展开:一方…

作者头像 李华