Matlab基础入门:概述与基础知识

1 MathWorks及其产品概述

  MATLAB是一种用于算法开发、数据可视化、数据分析及数值计算的高级技术计算语言和交互式环境。
Simulink是一个用于对动态系统进行多域建模和模型设计的平台。
PolySpace提供代码验证,可以确保消除源代码中的溢出、除零、数组访问越界及其他运行错误。(独立于MATLAB软件之外,需要单独安装)。

2 MATLAB和Mathematica、Maple并称为三大数学软件

3 MATLAB主要特点

  (1) 计算功能强大。

     (2)绘图非常方便。

     (3)功能强大的工具箱。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。

      功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能及与硬件实时交互功能。功能性工具箱用于多种学科。学科性工具箱的专业性比较强,如control、signal processing、communication 等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无须编写自己学科范围内的基础程序,而直接进行高、精、尖的研究即可。

     除内部函数以外,MATLAB 的所有核心文件和工具箱文件都是可读可写的源文件,用户可通过对源文件的修改及加入自己的文件构成新的工具箱。

      (4)帮助功能完整:自带的帮助功能是非常强大的帮助手册。

4 MATLAB的系统组成

  MATLAB系统由MATLAB开发环境、MATLAB数学函数库、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API) 五大部分构成。

 1.MATL AB开发环境

  MATLAB开发环境是一套方便用户使用MATLAB函数和文件的工具集,其中许多工具是图形化用户接口。它是一个集成化的工作区,可以让用户输入、输出数据,并提供了。它包括MATLAB桌面命令行窗口M文件编辑调试器MATLAB工作区在线帮助文档等。

 2. MATLAB数学函数库

  MATLAB数学函数库包括了大量的计算算法,从基本运算(如加法)到复杂算法(如矩阵求逆、贝济埃函数、快速傅里叶变换等),体现了其强大的数学计算功能。

 3. MATLAB语言

  MATLAB语言是一个高级的基于矩阵/数组的语言,包括程序流控制、函数、脚本、数据结构、输入/输出、工具箱和面向对象编程等特色。用户既可以用它来快速编写简单的程序,也可以用它来编写庞大复杂的应用程序。

 4. MATLAB图形处理系统

  图形处理系统使得MATLAB能方便地图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强力的二维及三维图形函数、图像处理和动画显示等函数。

 5. MATLAB程序接口

  MATLAB程序接口可以使MATLAB方便地调用C和Fortran 程序,以及在MATLAB与其他应用程序间建立客户/服务器关系。

5 MATLAB应用程序简介

  应用程序(也称工具箱)是MATLAB的重要部分,它是MATLAB强大功能得以实现的载体和手段,是对MATLAB基本功能的重要扩充。

MATLAB会不定时更新应用程序,可到http://www.mathworks.com/products中了解MATLAB应用程序的最新动态。

  应用程序又可以分为功能性应用程序和学科应用程序。功能性应用程序用来扩充MATLAB的符号计算、可视化建模仿真,以及与硬件实时交互等功能,能用于多种学科;学科应用程序是专业性比较强的应用程序,控制工具箱、信号处理与通信工具箱等都属于此类。

     下面将科学计算中常用的应用程序所包含的主要内容进行简单介绍。

  1. 样条工具箱

        ●分段多项式和B样条。

        ●样条的构造。

        ●曲线拟合及平滑。

        ●函数微积分。
  2. 优化工具箱

        ●线性规划和二次规划。

        ●求函数的最大值和最小值。

        ●多目标优化。

        ●约束条件下的优化。

        ●非线性方程求解。
  3. 偏微分方程工具箱

        ●二维偏微分方程的图形处理。

        ●几何表示。

        ●自适应曲面绘制

        ●有限元方法

6 MATLAB R2018a的目录结构

 在自定义的安装目录内包含了一系列的文件和文件夹。
安装目录内包含了一系列的文件和文件夹 其中部分文件和文件夹的用途:

     ●\bin\win32:MATLAB R2018a系统中可执行的相关文件。

     ●\extern:创建MATLAB R2018a的外部程序接口的工具。

     ●\help:帮助系统。

     ●\java: MATLAB R2018a的Java支持程序。

     ●\noebook: Notebook 是用来实现MATLAB教学工作环境与Word文字处理环境信息交互的软件,是一个兼备数学计算、图形显示和文字处理能力的集成环境。

     ●\rtw: Real-Time Workshop软件包。

     ●\simulink: Simulink软件包,用于动态系统的建模、仿真与分析。

     ●\stateflow: Stateflow软件包,用于状态机设计的图形化开发和设计工具。

     ●\sys: MATLAB R2018a需要的工具和操作系统库。

     ●\toolbox: MATLAB R2018a的各种应用程序。

     ●\uninstall: MATLAB R2018a的卸载程序。

     ●\license.txt: 软件许可协议的内容。

     ●\patents.txt:软件申请的专利内容。

7 MATL AB R2018a的工作环境

  MATLAB.exe在MATLAB R2018a的安装目录内的bin文件夹下。MATLAB R2018a的主界面即用户的工作环境。

7.1 菜单/工具栏

  MATLAB的菜单/工具栏中包含3个标签,分别为主页、绘图和应用程序。其中,绘图标签下提供数据的绘图功能;而应用程序标签则提供了各应用程序的入口。主页标签提供了下述主要功能。

    ●新建:用于建立新的m.文件、图形、模型和图形用户界面。

    ●新建脚本:用于建立新的m.脚本文件。

    ●打开:用于打开MATLAB的m.文件、.fig文件、.mat文件、 .mdl文件、.cdr文件等,也可通过快捷键Ctrl+O来实现此项操作。

    ●导入数据:用于从其他文件导入数据,单击后弹出对话框,选择导入文件的路径和位置。

    ●保存工作区:用于把工作区的数据存放到相应的路径文件中。

    ●设置路径:设置工作路径。

    ●预设:用于设置命令窗的属性,单击预设按钮弹出预设项对话框。

    ●布局:提供工作界面上各个组件的显示选项,并提供预设的布局。

    ●帮助:打开帮助文件或其他帮助方式。

7.2 命令行窗口

  命令行窗口是MATLAB最重要的窗口。用户输入各种指令、函数、表达式等,都是在命令行窗口完成的。

“>>”是运算提示符,表示MATLAB处于准备状态,等待用户输入指令进行计算。当在提示符后输入命令,并按Enter键确认后,MATLAB会给出计算结果,并再次进入准备状态。

  单击命令行窗口右上角的下三角形图标并选择“取消停靠”,可以使命令行窗口脱离MATLAB界面成为一个独立的窗口;同理,单击独立的命令行窗口右上角的下三角形图标并选择 “停靠”,可使命令行窗口再次合并到MATLAB主界面。

7.3 工作区

   工作区窗口显示当前内存中所有的MATLAB变量的变量名、数据结构、字节数及数据类型等信息。 不同的变量类型分别对应不同的变量名图标。

     用户可以选中已有变量,单击鼠标石键对其进行各种操作。此外,工作界面的菜单/工具栏上也有相应的命令供用户使用。

  • 新建变量:向工作区添加新的变量。
  • 导入数据:向工作区导入数据文件。
  • 保存工作区:保存工作区中的变量。
  • 清除工作区:删除工作区中的变量。

8MATLAB R2018a 的通用命令

  通用命令是MATLAB中经常使用的一组命令, 这些命令可以用来管理目录、命令、函数、变量、工作区、文件和窗口。为了更好地使用MATLAB,用户需要熟练掌握和理解这些命令。

1.常用命令


命令命令说明命令命令说明
cd显示或改变当前工作文件夹load加载指定文件的变量
dir显示当前文件夹或指定目录下的文件diary日志文件命令
clc清除工作窗中的所有显示内容!调用DOS命令
home将光标移至命令行窗口的最左上角exit退出MATLAB
clf清除图形窗口quit退出MATLAB
type显示文件内容pack收集内存碎片
clear清理内存变量hold图形保持开关
echo工作窗信息显示开关path显示搜索目录
disp显示变量或文字内容save保存内存变量到指定文件
2.输入内容的编辑

在命令行窗口中,为了便于对输入的内容进行编辑,MATLAB R2018a提供了一些控制光标位置和进行简单编辑的常用编辑键与组合键。


键盘按键说明键盘按键说明
Cart+P,调用上一行HomeCtrl+A,光标标置于当前行开头
Ccrl+N,调用下一行EndCtrl+E,光标置于当前行末尾
Cr+B,光标左移一个字符EscCtrl+U,清除当前输入行
Ccrt+F,光标右移一个字符DeleteCtrl+D,删除光标处的字符
Ctrl+←Ctrl+L,光标左移一个单词BackspaceCtrl+H,删除光标前的字符
Ctrl+→Ctrl+R,光标右移一个单词Alt+Backspace恢复上一次删除
3.标点

  在MATLAB语言中,一些标点符号也被赋予了特殊的意义或代表一定的运算。


标点说明标点说明
:冒号,具有多种应用功能%百分号,注释标记
;分号,区分行及取消运行结果显示!惊叹号,调用操作系统运算
,逗号,区分列及函数参数分隔符=等号,赋值标记
()括号,指定运算的优先级单引号,字符串的标识符
[]方括号,定义矩阵.小数点及对象域访问
{}大括号,构造单元数组续行符号

9MATLAB R2018a的文件管理

9.1 当前文件夹浏览器和路径管理器

  工作文件夹窗口可显示或改变当前文件夹,还可以显示当前文件夹下的文件,以及提供文件搜索功能。与命令行窗口类似,该窗口也可以成为一个独立的窗口。

9.2 搜索路径及其设置

  MATLAB提供了专门的路径搜索器来搜索存储在内存中的M文件和其他相关文件,MATLAB自带的文件所存放路径都被默认包含在搜索路径中,在MATLAB安装目录的"toolbox"文件夹中包含了所有此类目录和文件。

     当用户在MATLAB提示符后输入一个字符串如polyfit 后,MATLAB进行的路径搜索步骤如下:

     (1)检查polyfit是不是MATLAB工作区内的变量名,如果不是,执行下一步。

     (2)检查polyfit是不是一一个内置函数,如果不是,执行下一步。

     (3)检查当前文件夹下是否存在一个名为polyfit.m的文件,如果没有,执行下一步。

     (4)按顺序检查在所有MATLAB搜索路径中是否存在polyfit.m文件。

     (5)如果仍然没有找到polyfit, MATLAB就会给出一条错误信息。

根据上述步骤可以推知,凡是不在搜索路径上的内容(文件和文件夹),都不能被MATLAB搜索到; 当某一文件夹的父文件夹在搜索路径中而其本身不在搜索路径中时,则此文件夹并不会被搜索到。

  一般情况下,MATLAB系统的函数,包括工具箱函数,都是在系统默认的搜索路径之中的,但是用户设计的函数有可能没有被保存到搜索路径下,很多情况容易造成MATLAB误认为该函数不存在。因此,只要把程序所在的目录扩展成MATI AB的搜索路径即可。

     下面将介绍MATLAB搜索路径的查看和设置方法。

1.查看MATLAB的搜索路径

  单击MATLAB主界面菜单/工具栏中的“设置路径”,打开设置路径对话框。
在这里插入图片描述

   在命令行窗口输入命令:

path

MATLAB将会把所有的搜索路径列出来:
在这里插入图片描述

2.设置MATLAB的搜索路径

 方法(1):

     在命令行窗口输入:

edit path

或者

pathtool

  方法(2):

     在命令行窗口中输入:

path(path,'path')             %'path'是待添加的目录的完整路径

  方法(3):

     在命令行窗口中输入:

addpath 'path' -begin  %'path'是待添加的目录的路径,将新目录添加到搜索路径的开始
addpath 'path' -end    %'path'是待添加的目录的路径,将新目录添加到搜索路径的末端

10 MATLAB R2018a的帮助系统

10.1 纯文本帮助

  MATLAB中的各个函数,不管是内建函数、M文件函数,还是MEX文件函数等,一股都有M文件的使用帮助和函数功能说明,各个工具箱通常情况下也具有一个与工具箱名称相同的M文件来说明工具箱的构成内容。

     因此,在MATLAB命令行窗口中,可以通过一些命令来获取这些纯文本的帮助信息。这些命令包括help、lookfor 、which.、doc、 get、 type 等。

help命令的常用调用方式为:
help FUN

执行该命令可以查询到有关于FUN函数的使用信息。

lookfor命令的常用调用方式为:
lookfor topic
lookfor topic  -all

执行该命令可以按照指定的关键字查找所有相关的M文件。

10.2 演示(Demos)帮助

  通过Demos演示帮助,用户可以更加直观,快速地学习MATLAB中许多实用的知识。可以通过以下两种方式打开演示帮助。

     选择MATLAB主界面菜单栏上的帮助下的示例命令。

     在命令行窗口中输入:

demos

10.3 帮助导航浏览器

  帮助导航浏览器是MATLAB专门提供的一个独立的帮助子系统。该系统包含的所有帮助文件都储存在MATLAB安装目录下的help子目录下。可以采用以下两种方法打开帮助导航浏览器:

helpbrowser

或者:

doc
当命令后面有分号(半角符号格式)时,按Enter键后,命令行窗口中不显示运算结果。如果无分号,则在命令行窗口中显示运算结果。当希望先输入多条语句,然后再同时执行它们时,则在输入下一条命令时,要在按住Shift 键的同时按Enter键进行换行输入。



11数据类型

   MATLAB中的数据类型主要包括数值类型、逻辑类型、字符串、函数句柄、结构体和
单元数组类型。这6种基本的数据类型都是按照数组形式存储和操作的。另外,MATLAB
中还有两种用于高级交叉编程的数据类型,分别是用户自定义的面向对象的用户类类型和
Java类类型。

11.1 数值类型

  MATLAB中数值类型的数据包括有符号和无符号整数、单精度浮点数和双精度浮点数。在未加说明与特殊定义时,MATLAB对所有数值按

MATLAB会自动进行记忆体的使用和回收,而不像C语言,必须由使用者一一指定。这些功能使得MATLAB易学易用,使用者可专心致力于撰写程序。
1、整数类型

  ●8种内置的整数类型。

  ●转换函数

  • 由于由于MATLAB中数值的默认存储类型是双精度浮点类型,因此将变量设置为整数类型时,需要使用相应的转换函数,将双精度浮点数转换为指定的整数类型。
  • 在转换过程中,MATLAB默认将待转换数值转换为与之最为接近的整数值,若小数部分为0.5,则转换后的结果为与该浮点数最接近的两个整数中绝对值较大的一个。
  • 这些转换函数也可以将其他数据类型转换为指定的数据类型。在不超出数值范围的情况下,任意两个整数类型之间也可以通过转换函数进行相互转换。
  • 同时,由于不同的整数类型能够表示的数值范围不同,因此当运算结果超出相应的整数类型能够表示的范围时,就会出现一处错误,运算结果被置为该整数类型能够表示的最大值或最小值。
整数类型数值范围转换函数
有符号8位整数 − 2 7 -2^7 −27~ 2 7 − 1 2^7-1 27−1int8
无符号8位整数0~ 2 8 − 1 2^8-1 28−1uint8
有符号16位整数 − 2 15 -2^{15} −215~ 2 15 − 1 2^{15}-1 215−1int16
无符号16位整数 0 0 0~ 2 16 − 1 2^{16}-1 216−1uint16
有符号32位整数 − 2 31 -2^{31} −231~ 2 31 − 1 2^{31}-1 231−1int32
无符号32位整数0~ 2 32 − 1 2^{32}-1 232−1uint32
有符号64位整数 − 2 63 -2^{63} −263~ 2 63 − 1 2^{63}-1 263−1int64
无符号64位整数0~ 2 64 − 1 2^{64}-1 264−1uint64
  ●取整函数
  • MATLAB中还包含了几类不同运算法则的取整函数,也可以把浮点数转换成整数。
函数运算法则示例
floor(x)向下取整floor(1.2)=1; floor(2.5)=2; floor(-2.5)=-3
ceil(x)向上取整ceil (1.2)=2; ceil(2.5)=3; ceil(-2.5)=-2
round(x)取最接近的整数,如果小数部分是0.5,则向绝对值 大的方向取整round(1.2)=1; round(2.5)=3; round(-2.5)=-3
fix(x)向0取整fix(1.2)=1; fix(2.5)=2; fix(-2.5)=-2


2、浮点数类型

  ●两种浮点数类型

  • 单精度浮点类型
  • 双精度浮点类型
  •   ●转换函数

   由于MATLAB中的默认数值类型为双精度浮点类型,因此与创建整数类型数值一样,也可以通过转换函数来实现创建单精度浮点类型。


浮点类型存储位宽各数位的意义数值范围转换函数
单精度320~22位表示小数部分; 23~30位表示指数部分; 31位表示符号(0正1负)-3.40282e+038~-1.17549e-038 ;1.17549e-038~3.40282e+038single
双精度64051位表示小数部分;5262位表示指数部分;63位表示符号(0正1负)-1.79769e-308~-2.22507e-308; 2.22507e-308~1.79769e+308double
  ●返回值

  双精度浮点数参与运算时,返回值的类型依赖于参与运算的其他数据类型。

  • 参与运算的其他数据为逻辑型、字符型时,返回结果为双精度浮点型;
  • 参与运算的其他数据为整数型时,返回结果为相应的整数类型;
  • 参与运算的其他数据为单精度浮点型时,返回结果为相应的单精度浮点型。
!!! 在MATLAB中,单精度浮点类型不能与整数类型进行算术运算。

浮点数参与的运算

   在命令行窗口中输入:

 a=uint32(120);b=single(22.809);c=73.226;
 ab=a*b

输出结果:
aaa在命令行窗口中输入:

ac=a*c

输出结果:
在这里插入图片描述

   在命令行窗口中输入:

bc=b*c

输出结果:
在这里插入图片描述

   在命令行窗口中输入:

str='hello'

输出结果:
在这里插入图片描述

   在命令行窗口中输入:

newstr=str-44.3

输出结果:

在这里插入图片描述

   在命令行窗口中输入:

whos

输出结果:

在这里插入图片描述

  ●eps函数

  由于浮点数只占用一定的存储位宽,其中只有有限位分别用来存储指数部分和小数部分。因此,浮点类型能够表示的实际数值是有限且离散的,任何两个最近相邻的浮点数之间都有微小间隙,而处在间隙中的数值都只能用这两个相邻的浮点数之中的一个来表示。

     MATLAB中提供了 eps函数,可以获取一个数值和最接近该数值的浮点数之间的间隙。
浮点数的精度

   在命令行窗口中输入:

format long
eps(3)

输出结果:
在这里插入图片描述

   在命令行窗口中输入:

eps(single(3))

输出结果:
在这里插入图片描述

3、复数

  ●复数的创建

  1. 直接按照复数形式进行输入
  2. 利用complex函数
  3.   ●有关复数的相关函数
函数说明函数说明
real(z)返回复数Z的实部imag(z)返回复数Z的虚部
abs(z)返回复数Z的模angle(z)返回复数Z的辐角
conj(z)返回复数Z的共轭复数complex(a,b)以a为实部、b为虚部创建复数
4.无穷量(Inf)和非数值量(NaN)

  ●Inf

  • 使用Inf和-Inf分别代表正无穷量和负无穷量。
  • 正负无穷量的产生一般是由于运算溢出,产生了超出双精度浮点数数值范围的结果。
  •   ●NaN
  • NaN表示非数值量。
  • 非数值量则是由于0/0或In/Inf类型的非正常运算而产生的,这两个NaN彼此是不相等的。
  •   ●函数创建

  除了异常运算结果外,MATLAB还提供了特定函数Inf和NaN来创建指定数值类型的无穷量和非数值量,生成结果默认为双精度浮点类型中还有一种特殊的指数类型的数据叫作非数,通常表示运算得到的数值结果超出了运算范围。非数的实部用NaN表示,虚部用InF表示。

11.2 逻辑类型

1、逻辑类型的数据

  ●逻辑类型的数据是指布尔类型的数据及数据之间的逻辑关系。除了传统的数学运算之外,MATLAB还支持关系和逻辑运算。

     ●这些运算的目的是提供求解真/假命题的答案。

     ●作为所有关系和逻辑表达式的输入,MATLAB把任何非零数值当作真,把零当作假。

     ●所有关系和逻辑表达式的输出:对于真,输出为1;对于假,输出为0。

2、关系操作符

  ●MATLAB关系操作符能用来比较两个同样大小的数组。

     ●或用来比较一个数组和一个标量,标量和数组中的每一个元素相比较,结果与数组大小一样。


关系操作符说明
<小与
<=小于或等于
>大于
>=大于或等于
==等于
~=不等于
!!! “=”和“==”在MATLAB中的意义是不同的。 ●“==”是对等号两边的两个变量进行比较,当它们相等时返回1,不相等时返回0; ●“=”则是被用来将运算的结果赋给一个变量。

判断两个数组之间的元素是否相等。

   在命令行输入:

=1:9,B=10-A

输出结果:
在这里插入图片描述

   在命令行输入:

TrueorFalse=(A==B)   %判断A与B中的元素是否相等

输出结果:
在这里插入图片描述

3、逻辑运算符

  ●逻辑运算符提供了一种组合或否定关系表达式。


逻辑运算符说明
&
|
~

  ●逻辑函数:

     xor(x,y)指令的功能为异或运算,x和y同为零(假)或非零(真)时返回0,否则返回1。

     any(x)指令的功能为判断是否为零向量或零矩阵(即向量或矩阵中的元素全部为零),如果是零向量或零矩阵,则返回1,否则返回0。

   在命令行输入:

A=1:9;
TrueorFalse=(A>2)&(A<6)        %判断A中元素是否在2~6之间

输出结果:
在这里插入图片描述

4、测试函数

  测试函数,在运算过程中用来测试特殊值或条件是否存在,并返回相应的表示结果的逻辑值。


函数名称函数功能
finite元素有限,返回真值
Isempty参量为空,返回真值
isglobal参量是一个全局变量,返回真值
ishold当前绘图保持状态是“ON”,返回真值
isieee计算机执行IEEE算术运算,返回真值
isinf元素无穷大,返回真值
isletter元素为字母,返回真值
isnan元素为不定值,返回真值
isreal参量无虚部,返回真值
isspace元素为空格字符,返回真值
isstr参量为一个字符串,返回真值
isstudentMATLAB为学生版,返回真值
isunix计算机为UNIX系统,返回真值


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空