第   1  章 
                               MATLAB 基础概述 
                                       

     
     
      
      
      
     MATLAB   主要包括编程和仿真两大部分,它将数值分析、矩阵计算、科学数据可视化、
非线性动态系统的建模、仿真和                App 界面设计等诸多强大功能集成在一个环境中。自                        1992 年
初推出    MATLAB 4.0    后,最近几年,每年都升级两个版本,分别以年份加                           a 和  b 命名,如
MATLAB R2023a    版本是    2023 年  3 月的。随着版本变化,推出的产品功能不断提升,不仅增
加了支持     Python 语言的编辑器、自动缩进、换行、分隔符匹配查看、交互式界面控制动画功
能,还增加了使用机器学习和深度学习进行非线性系统辨识等功能,加强了测试平台自动化的
用户体验。此外,系统提供的大量矩阵算法、绘图、App                          用户界面及连接其他编程语言的接口
函数,为众多工程设计人员实现跨平台系统设计、仿真和人机交互提供了一种全面的解决方案,
被誉为数学类科技应用软件中首屈一指的编程软件。 

1.1  MATLAB           主要功能 

     MATLAB   是数值计算、可视化和应用程序开发的高级语言,它为数据迭代探索、仿真设
计、解决高级数学计算问题及界面设计等提供了交互式环境。MATLAB                                 的主要功能归纳如下: 
    (1)MATLAB     除了命令行窗口(Command Window)外,还提供了脚本编辑器,通过命
令或调用系统函数建立文件,该文件具有结构控制、函数调用、输入/输出、面向对象等语言
特征,称为      m 程序文件。 
    (2)使用接口函数与其他多种语言程序链接与嵌入,成为应用研究开发的交互式平台,
完成数据交互。 
    (3)使用     Simulink 进行仿真,建立各种仿真模型,搭接各种被控对象,使用多种输入、
输出手段进行仿真。 
    (4)提供信号处理工具箱、图像处理工具箱、通信工具箱、鲁棒控制工具箱、频域系统
辨识工具箱、优化工具箱、偏微分方程工具箱、控制系统工具箱等近百个工具箱,用户不用编
写程序即可实现复杂的计算、绘图和数据处理功能。此外,用户还可结合工作需要开发应用程
序或工具箱。 

     2       MATLAB 编程实战——手把手教你掌握                 300 个精彩案例 

          (5)MATLAB R2023a     在数值计算、数学建模、图像处理、控制系统设计、动态仿真、语
      音处理、数字信号处理、人工智能基础上,还增加了深度学习的神经网络功能,且可实现图像
      中的像素区域分类和语义分割的功能。 
          (6)使用    App  可构建图形用户界面(GUI),它取代了                 MATLAB    早期使用     guide 命令开发
      的  GUI  集成开发环境,并实现可视化组件布局行为编程。该功能不仅包括了原有的文本、下
      拉列表、组合框、按钮及坐标区等组件,还提供了仪表、指示灯、旋钮和开关等组件,能复现
      仪表面板的外观和操作;利用               App 设计器可以快速开发出带仪表操作的图形界面应用程序。 

      1.2  MATLAB R2023a                主窗口 

           MATLAB   主窗口包括命令行窗口、脚本编辑器窗口、工作区窗口、历史记录窗口、详细
      信息窗口及当前文件夹窗口等。此外,在主窗口上还提供了“主页”“绘图”和                                      APP  共 3 个选
      项卡,默认的为“主页”选项卡,该选项卡集成的信息处理窗口称为主窗口。 
           1.2.1  命令行窗口 

           MATLAB R2023a   窗口是应用程序处理的基本单元,用户不仅可以在窗口中执行命令,还
      可以编写、修改、运行应用程序,还能进行数据和应用程序一体化的管理。系统的主窗口由                                             6
      部分组成,即主页工具栏窗口、命令行窗口、工作区窗口、历史记录窗口、当前文件夹窗口和
      详细信息窗口。主窗口中的命令行窗口、当前文件夹窗口、工作区窗口与早期版本相比,保持
      了原有风格,但菜单功能上有了很大的提升。主窗口(主界面)如图                                  1.1 所示。 


                                                                                    
                                   图  1.1  MATLAB R2023a 主界面 

           说明: 
          (1)命令行窗口(Command Window)是对               MATLAB   进行操作的主要窗口,也是主要交
      互窗口,默认情况下启动             MATLAB   时就会打开它,用于输入             MATLAB   命令、表达式、函数、

                                                                     第  1 章   MATLAB 基础概述             3 

数组、计算公式,并显示图形以外的所有计算结果及程序错误信息。MATLAB                                      的所有函数和
命令都在“>>”提示符下输入,用到的变量无须定义且都以矩阵(数组)形式出现,它可根据需
要随时更改大小,如          同在稿纸中书写数学算式一样。计算中可使用函数替代复杂公式,语句书
写简便快捷,只需要写出命令按                Enter 键,即可在窗口中得出结果。 
    (2)顶部工具栏分         6 个功能模块,模       块包括文件、变量、代码、SIMULINK、环 境 、资源。
例如:变量模块中可以导入其他文件中的数据或打开现有变量。 
    (3)工作区窗口显示当前文件夹及当前文件夹下的文件,包括文件名、文件类型、最后
修改时间以及该文件的说明信息。MATLAB                     只执行当前文件夹或搜索路径下的命令、函数与
文件。 
    (4)历史命令记录窗口记录用户每一次启动                     MATLAB   的时间,以及每一次启动             MATLAB
后,在命令行窗口中运行过的所有命令行,这些命令记录可以被复制到命令行窗口中再运行,
避免再重新输入。 
    【实战练习      1-1】命令行窗口的使用 
     在命令行窗口上输入一元二次方程的系数                    a=1、b=-1、c=-30,输出方程的解            x1 和 x2。 
     编程代码如下: 
      
     >> a=1; 
     >> b=-1; 
     >> c=-30; 
     >> q=b*b-4*a*c; 
     >> x1=(-b+sqrt(q))/(2*a) 
     结果:x1 =     6 
     >> x2=(-b-sqrt(q))/(2*a) 
     结果:x2 =    -5 
      
     所有操作在其命令行窗口的“>>”提示符下输入,                                                          
结果如图     1.2 所示。                                              图 1.2  命令行窗口 
     1.2.2   工具栏窗口 

     MATLAB R2023a   的工具栏在主窗口的顶部,默认打开“主页”工具栏如图                             1.3 所示。 


                                                                                       
                                  图 1.3 “主页”工具栏 

     1.新建脚本 
     单击工具栏中的“新建”按 钮            ,可  新建脚本文件(.m        程序文件)、函数、应用程序文件(图
形界面)等,“新建”命令的下拉菜单如图                     1.4 所示。 

     4       MATLAB 编程实战——手把手教你掌握                 300 个精彩案例 

           说明: 
          (1)脚本:与“新建脚本”命令的功能相同,用于
      编写程序文件; 
          (2)实时脚本:以扩展名为.mlx              的新文件格式存储在
      线脚本,可在编辑字段时查看代码和结果; 
          (3)函数:使用“function +函数名…end”构造函数或
      函数文件; 
          (4)实时函数:系统提供的实时编辑器,与脚本相似,
      它允许向其传递输入值,获得输出值; 
          (5)类:使用“classdef…end”构造类或类文件; 
          (6)测试类:创建一个继承              matlab、unittest、TestCase
      的测试类; 
          (7)System object:构造系统对象,包括基本、高级和
      Simulink 扩展; 
          (8)工程:创建新工程或从文件夹导入工程文件; 
          (9)图窗:图形窗口的简称,用于建立绘图的窗口;                                                         
          (10)App:设计       UI(用户界面)选项,用于制作人机                    图 1.4 “新建”命令的下拉菜单 
      交互接口; 
          (11)Simulink  模型:用于建立模型文件并进行仿真。 
           2.保存工作区 
           用户可将工作区变量以           matlab.mat 文件形式保存,以备在需要时再次导入。“保存工作区”
      可以通过菜单、save         命令或快捷菜单进行。在该工作区中,右击需要保存的变量名,选择
      SaveAs…命令,可在当前文件夹中保存“变量名.mat”文件。 
           3.导入数据 
           在编写一个程序时,经常需要从外部导入数据,或者将.mat                            文件再次导入工作区,也可
      以通过其他程序调用。 
           4.预设项 
           MATLAB   对各个窗口的颜色、字体、编辑、调试、帮助、附加功能、快捷键的环境设置,
      可以通过“预设项”实现,单击工具栏的“预设项”按钮,出现“预设项”窗口:左侧为设置
      项,右侧为设置参数,选择设置项即可设置对应参数,其中: 
          (1)单击左侧“字体”选项,可以进行字体设置。桌面代码字体设置包括命令行
     (Command)窗口,编辑器字体。若设置编辑器及命令行窗口字体为                                24 号,见示例的“字体”
      设置,如图      1.5 所示。 
          (2)单击左侧“代码分析器”选项,可以设置查看代码错误信息,如图                                   1.6 所示。 
            


                                                                     第  1 章   MATLAB 基础概述             5 


                                                                         
                                  图 1.5 “预设项”窗口 


                                                                         
                                图  1.6  查看代码错误信息 

     5.附加功能 
    “附加功能”为特定任务、交互式应用程序和资源管理等扩展功能,
如图   1.7 所示。 
     其中,“获取附加功能”命令可实时链接                   MathWorks  公司网站,下
载系统工具箱;“App         打包”命令是为脱离         MATLAB    环境运行,生成.exe
                                                                                   
文件的功能模块。 
                                                                      图 1.7  附加功能 

     6         MATLAB 编程实战——手把手教你掌握                      300 个精彩案例 

       1.3  命令行窗口操作 

            MATLAB     的命令行窗口提供了快速操作功能,可以在                            MATLAB     命令行窗口直接输入命
       令、函数或表达式,按              Enter 键,即 可    显示相应的运行结果。命令行窗口用于解释执行并输出,
       适合运行比较简单的单行语句,方便直接查看结果。 
            1.3.1     常用命令行窗口命令 

            命令行窗口用于输入命令并显示除图形以外的所有执行结果,在命令行窗口中可以运行
       单独的命令,也可以调用程序,还能很直观地对程序运行过程中出现的矩阵或变量进行检查。
       命令行窗口常用命令如表                1.1 所示。 

                                          表  1.1  命令行窗口常用命令 
         命  令                    说    明                   命  令                    说    明 
         clc       清除命令行窗口 dir 可以查看当前文件夹的文件 
         clf       清除图形对象 save 保存工作区或工作区中任何指定文件 
         clear     清除工作区所有变量,释放内存 load 将.mat文件导入工作区 
         type      显示指定文件的所有内容 hold 控制当前图形窗口对象是否被刷新 
         clear all 清除工作区所有变量和函数 quit/exit                           退出MATLAB系统 
         whos      列出工作区中的变量名、大小、类型                       close     关闭指定窗口 
         who       只列出工作区中的变量名 which 列出文件所在文件夹 
         what      列出当前文件夹下的.m和.mat文件 path                          启动搜索路径 
         delete    删除指定文件 % 注释语句 
         help      显示帮助信息 cd 显示当前文件夹 

            说明: 
           (1)在命令行窗口输入命令按                   Enter 键即可执行,每行可写入一条或多条命令,用分号隔
       开,但添加分号后的语句输出不显示在屏幕上。 
            例如: 
            clear x,y,z                                  %清除指定的       x,y,z  变量 
            a=10;b=12; c=a+b;                            %a、b、c    的结果均不显示 
           (2)save    可将工作区中的所有变量保存在文件中,默认文件名为                                   matlab.mat。 
           (3)若输入语句后按              Enter 键结果出现错误,则必须重新输入,按                         Enter 键后不能修改且
       输入的命令和结果不能保存。 
           【实战练习        1-2】保存、导入及查看命令的使用 
            在命令行窗口中使用保存(save)和                   导入(    load)命 令   保存和导入变量,并查看工作区变量。 
            编程代码如下: 
             
            >>x=[0:0.1:5]                                %x 从  0 开始到    5,每隔    0.1  取一个值 

                                                                              第  1 章   MATLAB 基础概述                  7 

     >>y=cos(x)                                   %计算每个      x 值的余弦值 
     >>save filexy x y                            %把变量    x,y   存入   filexy.mat   文件中 
     >>z='Study Matlab2023a'                      %将字符串赋给        z 变量 
     >>save filexy z -append                      %把变量追加存入         filexy.mat    文件中 
     >>clear                                      %清空工作区所有变量 
     >>load filexy                                %调用   filexy.mat    文件到工作区 
     >>save filexy -ascii                         %把  filexy  文件存储为文本文件 
     >>who                                        %列出工作区中的变量名 
     >>whos                                       %列出工作区中的变量名、大小和类型 
      
     代码结果如下: 
      
     您的变量为:x  y  z   
      Name      Size        Bytes    Class     Attributes 
       x         1x51        408      double 
       y         1x51        408      double 
       z         1x17        34       char 
      
     说明:使用保存命令时需要先右击,然后选择以管理员方式打开,否则出现“错误使用 
save,无法写入文件           filexy: 权限被拒绝”的提示信息。 
    【实战练习        1-3】表达式运算 
                                3cos(π / 3)+ 123
     在命令行窗口中完成              y =                的简单计算。 
                                   129+
     编程代码如下: 
      
     >>clc;%清除屏幕 
     >>y=(3*cos(pi/3)+12^3)/(1+sqrt(29)) 
      
     说明:pi     表示   π;sqrt( )是求平方根的函数;“^”表示求幂。 
     1.3.2     命令行窗口常用快捷键 

     命令行窗口中常用快捷键如表                   1.2 所示。 

                                  表  1.2  命令行窗口常用快捷键 
 快捷键                     说    明                    快捷键                    说    明 
 Ctrl+A     全部选中当前页面内容 Ctrl+C                                      复制当前选中内容 
 Ctrl+X     剪切当前选中内容(用于文本操作)                       Ctrl+V          粘贴当前剪贴板内的内容 
 Ctrl+Z     返回上一项操作 Ctrl+F 打开查找面板 
 Ctrl+B     光标向前移动一个字符 Ctrl+K                                      删除到行尾 
 Ctrl+Q     强行退出MATLAB系统和环境 Ctrl+U                                 清除光标所在行 
 Ctrl+E     光标移到行尾 Ctrl+P 调用打印窗口 
 Home       光标移动到行首 End 光标移动到行尾 


     8       MATLAB 编程实战——手把手教你掌握                 300 个精彩案例 

      1.4  App       设计(Designer) 

           随着  MATLAB   版本的逐步提高,系统使用             App 设计替换原有       guide 的 GUI(Graphical User 
      Interface,图 形用户界面),App       设计对原有      GUI 进行了优化,且代码也简单了很多。MATLAB 
      R2023a 主窗口菜单设计了          APP 选项卡,单击该选项卡即可建立多种形式的                      GUI。 
           1.4.1  App    的功能 

           打开  MATLAB    菜单栏的     APP 选项卡,再选择“设计            App”命令,即可打开           App 设计的
      功能界面,如图        1.8 所示。 


                                                                                             
                                         图 1.8  APP 选项卡 

           App 设计不仅可构建设计视觉组件的                 GUI,还可使用代码段完成相应的操作。通过设计
      画布添加组件,包括标签、编辑字段(数值/文本)、按钮、图像、坐标区、仪表、信号灯、开
      关和旋钮,再使用网格布局、选项卡组和面板进行有效组织,以创建美观、实用的操作界面和
      仪表面板。根据不同对象的回调函数,打开内置编辑器,可管理界面中组件的生成代码,并使
      用户编写回调代码完成特定的任务。系统提供的组件包括常用、容器、图窗工具和仪器,如图
      1.9 所示,使用方法见第          8 章。 


                                                                                    


                                                                                
                                            图 1.9  组件 


                                                                     第  1 章   MATLAB 基础概述             9 

     1.4.2  App    的使用 

     App 常用组件的使用:标签用于添加标题;编辑字段(数值/文本)用于人机交互输入数
据;坐标区用于显示图像及各种函数波形;日期选择器用于添加日期;按钮用于提交命令。在
画布上选中按钮对象,在“组件浏览器”中选择“回调”按 钮                            ,可  打开代码视图编辑回调函数,
回调函数是界面中按钮、列表框、下拉框、滑块、编辑字段(数值/文本)等多种动态组件的
交互操作,常使用按钮选择              ButtonPushed 事件执行对应的        MATLAB   回调函数。在       App 设计工
具中,操作步骤为使用“设计视图”编辑组件布局,再切换到“代码视图”编写回调函数。 
    【实战练习      1-4】使用    App 设计简单     GUI 
     操作步骤如下: 
    (1)打开     MATALB,在主菜单栏中单击             APP 选项卡,选择“设计           App”→“空白       App”,
打开“App     设计工具”。 
    (2)在空白画布上添加标签、坐标区、编辑字段(数值)、按钮和日期选择器组件,分别
选中组件并修改右侧的属性,添加标签文字、绘图标题,如图                               1.10 所示。 


                                                                          
                                  图 1.10  App 编辑界面 

    (3)单击“绘图”按钮,在“组件浏览器”中单击“回调”,编程代码如下: 
      
     x=0.1:pi/12:2*pi;                  %设置横坐标         x 的值从   0.1 到 2π 
     A1=app.EditField.Value;            %提取编辑字段的幅值 
     y=A1*sin(x);                           %纵坐标为正弦函数 
     plot(app.UIAxes,x,y)                   %在坐标区中绘制图形 
     grid(app.UIAxes,"on");                 %添加栅格 
      
     说明:plot()是通用的二维画图函数,plot()函数将目标坐标区 (App.UIAxes) 指定为第一
个参数,加入       x、y  轴的向量后,则在指定的目标坐标区绘制二维曲线。 
    (4)单击“重置”按钮,在“组件浏览器”中单击“回调”,编程代码如下: 
      

     10       MATLAB 编程实战——手把手教你掌握                 300 个精彩案例 

            cla(app.UIAxes); 
            grid(app.UIAxes,"off"); 
             
          (5)单击“运行”按钮,保存代码为.mlapp                   文件
       并直接运行      App。保存成功后,也可以在             MATLAB   命
       令行窗口输入保存的文件名运行。从命令提示符下运
       行  App  时,该文件必须位于当前文件夹或                  MATLAB
       路径中,否则需要加入路径名称,运行菜单如图                         1.11                                     
       所示。                                                          图  1.11  运行菜单 
            运行结果如图       1.12 所示(详细操作见第          8 章案例)。 


                                                                               
                                         图 1.12  App 运行结果 

       1.5  认识        Simulink 

            Simulink 是 MATLAB   中重要的可视化仿真工具组件,它提供了一个动态系统建模、仿真
       和综合分析的集成图形开发环境,用于多域仿真及模型设计。Simulink                              提供了图形编辑器、多
       种模块库以及求解器,通过将模型对象、输入及输出模块拖入编辑界面中,即可完成建模,单
       击“运行”按钮即可进行仿真。此外,MathWorks                     公司还提供了一些附加产品和第三方硬件、
       软件产品用于 Simulink        中,支持系统设计、仿真、自动生成代码以及嵌入式系统的仿真测试
       和验证。 
            1.5.1  Simulink    初始界面 

            在图   1.1 中,单击主菜单栏中的           Simulink 按钮或在命令行窗口中输入             Simulink 命令,均
       可打开“Simulink     起始页”窗口,单击“空白模型”选项,即可自行建立一个仿真模型文件,
       如图   1.13 所示。 


                                                                      第  1 章   MATLAB 基础概述             11


                                                                                      
                               图  1.13 “Simulink 起始页”窗口 
     1.5.2  Simulink    简单仿真案例 

    【实战练习      1-5】Simulink 简单仿真模型 
     操作步骤如下: 
    (1)在图     1.13 中单击“空白模型”选项,再选择工具栏“库浏览器”命令,在左侧打开
的模块库中再选择          Simulink 模块下的子模块         Continuous 连续系统,拖动        1 个惯性环节对象
1/(s+1),在  sources(信号源模块库)中拖动正弦信号,在                  sinks(输出模块库)拖动          Scope(示
波器)组件到模型编辑窗口中。 
    (2)拖动鼠标将        3 个组件进行连线,即可建立一个简单仿真模型,如图                          1.14 所示。 


                                                                           
                              图 1.14  建立  Simulink 仿真模型 

    (3)单击“运行”按钮,出现一个临时的进度条,结束后即可双击                                Scope 组件,查看仿真
结果,如图      1.15 所示。 

     12       MATLAB 编程实战——手把手教你掌握                 300 个精彩案例 


                                                                      
                                           图 1.15  仿真结果 

       1.6  帮助窗口 

            MATLAB   的帮助窗口可以为用户方便、快速地打开和调用                       MATLAB    的各种程序、函数的
       帮助信息。在任何窗口按快捷键“F1”,均会弹出一个帮助窗口,选择“文档”选项卡,可实
       时查看“使用        MATLAB”和“使用         Simulink”及“工作流”的帮助信息。选择“示例”选项
       卡,可学习使用规则并查看应用案例。 
            1.6.1  help   命令 

            直接在命令行窗口中输入             help 命令,打开“帮助”窗口,根据列出的主题选择帮助信息,
       如图   1.16 所示。 


                                                                                     
                                           图 1.16  帮助窗口 

                                                                      第  1 章   MATLAB 基础概述             13

     在“帮助中心”页面中可按照主题选择子项,若在主题选择“物理建模”,然后选择右边
的“示例”选项卡,详细帮助信息如图                    1.17 所示。 


                                                                              
                                  图 1.17  物理建模示例 

     1.6.2  demo    命令 

     在命令行窗口中可按照输入              demo/ demo type/ demo type name 三种形式,获得更详细的帮
助信息,例如,输入           demo matlab 或选择帮助窗口的“使用            MATLAB”,再单击“函数”选项
卡,可获得      MATLAB   的所有函数类别列表,如图              1.18 所示。 


                                                                              
                                 图  1.18  demo 命令演示 

     说明:在帮助窗口中,根据列表提供的术语索引表,可以查找命令、函数和专用术语等。