《与数学实验(第二版)第2章MATLAB程序设计基础ppt课件.pptx》由会员分享,可在线阅读,更多相关《与数学实验(第二版)第2章MATLAB程序设计基础ppt课件.pptx(151页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数学软件与数学实验(第二版)第2章 MATLAB程序设计基础 电子课件第二章 MATLAB基础2主要内容MATLAB开发环境MATLAB语言的变量运算符语句MATLAB中的M文件等。32.1 MATLAB的程序界面的程序界面 MATLAB 2020a程序界面上半部分是一个工具条,包括主页主页、绘绘图图和APP三个选项卡(tab),其中主页选项卡又分为文件、变量、代码、SIMULINK、环境和资源几个区(section),每个区中有若干个命令。下半部分包括当前文件夹窗口(Current Folder)、命令行窗口(Command Window)和工作区窗口(Workspace)。MATLAB程序
2、界面窗口的布局可以通过“主页主页”选项卡上“环环境境”区中的“布局布局”命令进行设置。42.1 MATLAB的程序界面的程序界面2.1.1 2.1.1 命令行窗口命令行窗口1、命令命令行行窗口的功能窗口的功能命令命令行行窗口是用户与窗口是用户与MATLAB编译器进行通信的工作环境,采用交编译器进行通信的工作环境,采用交互式设计方式互式设计方式。主要功能是主要功能是:接受输入的命令或函数调用接受输入的命令或函数调用,显示命令或函数执行的结显示命令或函数执行的结果果,若有错误若有错误,则则反馈反馈错误信息。错误信息。“”为提示符为提示符,表示MATLAB编译器正等待用户输入命令52.1 MATLA
3、B的程序界面的程序界面例如,要创建一个变量,并赋值3.14x=3.14sin(x)注意:ans 是answer的缩写,MATLAB中的默认结果变量,当没有指定存储数据的变量时,就默认使用ans来保存数据。x=4.56;注意:分号“;”的作用是让MATLAB系统只完成该命令要求的计算任务,不显示计算结果。62.1 MATLAB的程序界面的程序界面输入命令自动更正输入命令自动更正的的功能,键入如下功能,键入如下命令:命令:sn(x)命令行功能键命令行功能键72.1 MATLAB的程序界面的程序界面2、数值的显示格式、数值的显示格式在命令行窗口显示数值结果时,如果是整数,显示整数;如果在命令行窗口显
4、示数值结果时,如果是整数,显示整数;如果是实数,默认显示小数点后四位有效数字。是实数,默认显示小数点后四位有效数字。用用format命令来指定改变数值的显示格式,但不影响计算与存命令来指定改变数值的显示格式,但不影响计算与存储。储。format style 设置命令行窗口数据的输出格式为设置命令行窗口数据的输出格式为style 89style作用以10*pi为例short十进制固定小数点短格式,小数点后包含4位数,这也是默认格式。31.4159long十进制固定小数点长格式,double值的小数点后包含15位数,single值的小数点后包含7位数。31.415926535897931short
5、E科学记数法短格式,小数点后包含4位数。3.1416e+01longE科学记数法长格式,double值的小数点后包含15位数,single值的小数点后包含7位数。3.141592653589793e+01shortG十进制固定小数点短格式或科学记数法(取更紧凑的一个),总共5位有效数字。31.416longG十进制固定小数点长格式或科学记数法(取更紧凑的一个),对于double值,总共15位有效数字;对于single值,总共7位有效数字。31.4159265358979shortEng工程记数法短格式,小数点后包含4位有效数字,指数为3的倍数31.4159e+000longEng工程记数法长格
6、式,总共包含15位有效数字,指数为3的倍数31.4159265358979e+000hex数值在内存存储的二进制的十六进制表示形式。403f6a7a2955385e+正/负格式,对正、负和零元素分别显示+、-和空白字符。+rat比率格式,分子分母为两个最小整数。3550/113bank货币格式,小数点后包含2位数。31.42compact这是设置行距的参数,它可以隐藏过多的空白行以便在一个屏幕上显示更多内容。10*pians=31.4159loose输出行之间添加空白行以使输出更易于阅读,这是默认格式。10*pians=31.41592.1 MATLAB的程序界面的程序界面format 设置命
7、令行窗口数据的输出格式为默认格式。设置命令行窗口数据的输出格式为默认格式。也可以通过也可以通过“主页主页”选项卡上选项卡上“环境环境”区中的区中的“预设预设”命令来命令来改变数值的显示格式改变数值的显示格式102.1 MATLAB的程序界面的程序界面2.1.2 2.1.2 工作区窗口工作区窗口工作区窗口是工作区窗口是MATLAB的变量管理中心的变量管理中心每次启动每次启动MATLAB,都会自动建立一个,都会自动建立一个(基本基本)工作区工作区工作区在工作区在MATLAB运行期间一直存在,关闭运行期间一直存在,关闭MATLAB后,工作区才会后,工作区才会自动消除自动消除。在。在命令行命令行窗口窗
8、口或或运行命令文件产生运行命令文件产生的变量被加入到工作的变量被加入到工作区区中中除非用命令删除某变量,除非用命令删除某变量,否则该变量在关闭否则该变量在关闭MATLAB之前一直保存在之前一直保存在工作区工作区112.1 MATLAB的程序界面的程序界面MATLAB提供了一些命令随时查看工作区中的变量名及变量的值提供了一些命令随时查看工作区中的变量名及变量的值(1)who或或whos 显示当前工作区中的所有变量。显示当前工作区中的所有变量。who只显示变量只显示变量名,名,whos给出变量的给出变量的 大小、数据类型等信息。大小、数据类型等信息。(2)class(变量名变量名)显示工作空间中指
9、定变量的数据类型。显示工作空间中指定变量的数据类型。(3)size(变量名(变量名)显示当前工作区中指定变量显示当前工作区中指定变量的大小(维数)。的大小(维数)。(4)length(变量名变量名)显示当前工作区中最大维数中的长度。显示当前工作区中最大维数中的长度。122.1 MATLAB的程序界面的程序界面(5)disp(变量名变量名)显示当前工作区中指定显示当前工作区中指定变量的值。变量的值。(6)clear 清除工作区中的所有变量清除工作区中的所有变量(7)clear var1 var2 var3 清除指定的工作区变量清除指定的工作区变量例例2-12-1 首先定义三个变量x,y,z并分别
10、赋值,然后查看工作区中的变量名、类型及值,最后清除变量z。132.1 MATLAB的程序界面的程序界面2.1.3 2.1.3 当前文件夹当前文件夹当前文件夹当前文件夹(Current Folder)窗口显示了窗口显示了MATLAB在对文件操作(保存、在对文件操作(保存、打开等)时默认的工作打开等)时默认的工作目录目录默认默认情况下只显示文件名,右击该窗口的标题栏,可以选择显示文件的情况下只显示文件名,右击该窗口的标题栏,可以选择显示文件的大小、修改日期、类型等大小、修改日期、类型等内容内容在当前文件夹窗口中的某一文件上单击鼠标右键,会弹出上下文菜单,在当前文件夹窗口中的某一文件上单击鼠标右键,
11、会弹出上下文菜单,可通过此菜单实现对文件的打开、运行、重命名、复制、删除等可通过此菜单实现对文件的打开、运行、重命名、复制、删除等操作操作用户可以通过窗口上方的浏览文件夹用户可以通过窗口上方的浏览文件夹工具来工具来改变当前文件夹。改变当前文件夹。142.1 MATLAB的程序界面的程序界面2.1.4 2.1.4“命令历史记录命令历史记录”窗口窗口命令命令历史记录窗口历史记录窗口(Command History)记录了所有执行过的命令及记录了所有执行过的命令及执行执行时间时间在在命令行窗口中,按命令行窗口中,按键会弹键会弹出以前输入过的命令出以前输入过的命令通过通过“主页主页”选项卡上选项卡上“
12、环境环境”区中的区中的“布局布局”命令,选择命令,选择“命令历史记命令历史记录录”“”“停靠停靠”,使该窗口固定在工作界面上。,使该窗口固定在工作界面上。用户用户可以用鼠标双击在该窗口中的某一历史命令来重新执行该命令,也可可以用鼠标双击在该窗口中的某一历史命令来重新执行该命令,也可以用鼠标右击某一历史命令,利用弹出的上下文菜单,进行复制、删除、以用鼠标右击某一历史命令,利用弹出的上下文菜单,进行复制、删除、执行命令执行命令152.2 搜索路径什么是搜索路径?什么是搜索路径?MATLAB搜索路径是文件系统中所有文件夹的子集,用于帮助搜索路径是文件系统中所有文件夹的子集,用于帮助MATLAB找到需
13、要的文件找到需要的文件。162.2 搜索路径在在MATLAB命令窗口中输入命令窗口中输入demo后按回车键,后按回车键,MATLAB按下列顺序开按下列顺序开始搜索:始搜索:(1)在工作区中检查在工作区中检查demo是不是变量,如果是,返回该变量值;否是不是变量,如果是,返回该变量值;否则转入则转入(2)。(2)检查检查demo 是不是内部函数,如果是,执行该内部函数;否则转是不是内部函数,如果是,执行该内部函数;否则转入入(3)。(3)在当前文件夹中检查是否有名为在当前文件夹中检查是否有名为demo.m的文件,如果有,执行的文件,如果有,执行该文件;否则转入该文件;否则转入(4)。(4)在搜索
14、路径中查找是否有名为在搜索路径中查找是否有名为demo.m的文件,如果有,执行该的文件,如果有,执行该文件;否则给出出错信息。文件;否则给出出错信息。172.2 搜索路径对对MATLAB搜索路径的管理可用搜索路径的管理可用path命令,格式命令,格式如下如下:path,显示,显示 MATLAB的搜索路径,该路径存储在的搜索路径,该路径存储在 pathdef.m 中。中。path(newpath),将搜索路径更改为,将搜索路径更改为newpath。path(oldpath,newfolder),将,将newfolder文件夹添加到搜索文件夹添加到搜索路径末尾路径末尾。如果如果 newfolder
15、 已存在于搜索路径中,则将已存在于搜索路径中,则将 newfolder 移到搜索移到搜索路径末尾路径末尾。path(newfolder,oldpath),将,将 newfolder 文件夹添加到搜索文件夹添加到搜索路径开头路径开头。如果如果 newfolder 已经在搜索路径中,则将已经在搜索路径中,则将 newfolder 移到搜索移到搜索路径开头路径开头p=path(),以字符向量形式返回,以字符向量形式返回 MATLAB 搜索路径。搜索路径。182.2 搜索路径例例2-3 将文件夹D:mypath添加到搜索路径的开始。path(d:mypath,path);搜索路径的设置也可以通过“主页
16、主页”选项卡上“环境环境”区中的“设置路径设置路径”命令注意:搜索路径上的文件夹顺序十分重要,当在搜索路径上的多个文件夹中出现同名文件时,MATLAB 将使用搜索路径中最靠前的文件夹中的文件。192.3 帮助系统MATLAB 有以下有以下几种方法获得帮助几种方法获得帮助:1.使用使用 doc 命令在单独的窗口中打开函数文档。格式如下命令在单独的窗口中打开函数文档。格式如下 :doc,打开帮助浏览器。,打开帮助浏览器。doc name,显示,显示 name 相关文档。相关文档。2.在键入函数输入参数的左括号之后稍停或按在键入函数输入参数的左括号之后稍停或按Ctrl+F1,此时命令行窗,此时命令行
17、窗口中会显示相应函数的提示(函数文档的语法部分)口中会显示相应函数的提示(函数文档的语法部分)3.3.帮助帮助命令命令 help 和和lookfor4.4.帮助窗口帮助窗口202.4 数据与数据类型 数据是MATLAB软件处理的对象,根据数据属性的不同,将数据划分为不同的数据类型,一个数据可以用常量形式表示,也可以用变量来存储。212.4 数据与数据类型22名称代表的数据名称代表的数据i,j虚数单位,定义为 realmindouble型数据的最小的正浮点数,2.2251e-308pi圆周率realmaxdouble型数据的最大的浮点数,1.7977e+308eps浮点数的相对误差intmax3
18、2位二进制数表示的最大正整数,2147483647NaN表示非数,即0/0intmin32位二进制数表示的最小负整数,-2147483648Inf无穷大,如1/0flintmaxdouble型数据的连续整数中的最大值9007199254740992 2.4.1 常量常量 常量是指在计算过程中不变的量,如常量是指在计算过程中不变的量,如123,3.14159,1.3e-8,China,true,都是一些常量。都是一些常量。除此之外除此之外,MATLAB中还定中还定义了一些特殊数据义了一些特殊数据注注1 1:上述表中的名称不要做为变量名使用。根据MATLAB的规则,当在命令行窗口中的命令中出现一个
19、标识符时,工作区中的变量名会优先被搜索到。因此,如果表中的名称被当作变量名使用,则名称所定义的常量值会失效。如:eps=1若要恢复eps原来的值,用 clear命令将变量eps清除即可。232.4 数据与数据类型注2:上述表中有的名称也可以用函数的形式使用,详细使用方法请参阅MATLAB的Help。例如,若要获得single类型数据的最大浮点数,可使用下面命令:realmax(single)想一想想一想:在命令行窗口输入如下命令,为什么x+1的计算结果是错误的?x=flintmax(single)x+1242.4 数据与数据类型2.4.2 2.4.2 变量变量变量是用来存储数据的。变量是用来存
20、储数据的。不需要对所使用的变量进行事先声明,也不需要指定变量的类型不需要对所使用的变量进行事先声明,也不需要指定变量的类型。在在MATLAB中,所有变量都是一中,所有变量都是一个数组个数组每个变量都要有一个名字,给变量命名必须遵循如下规则:每个变量都要有一个名字,给变量命名必须遵循如下规则:(1)变量名区分大小写字母,因此变量名区分大小写字母,因此a与与A是两个不同的变量;是两个不同的变量;(2)变量名以字母开头,变量名中可以包含字母、数字和下划线,但不能使变量名以字母开头,变量名中可以包含字母、数字和下划线,但不能使用标点;用标点;(3)变量名最多包含变量名最多包含63个字符,之后的字符将被
21、忽略;个字符,之后的字符将被忽略;(4)不能用不能用MATLAB关键字如关键字如if,end等作变量名;等作变量名;252.4 数据与数据类型通过赋值号(通过赋值号(=)定义变量并给变量赋值)定义变量并给变量赋值 x=123;如果要给变量赋值为一个数组,则输入格式要求如下:如果要给变量赋值为一个数组,则输入格式要求如下:(1)数组数组的元素必须在方括号的元素必须在方括号中;中;(2)数组数组的同行元素之间用的同行元素之间用空格空格或或逗号逗号“,”分隔;分隔;(3)数组数组的行与行之间用的行与行之间用分号分号“;”或或回车符回车符分隔;分隔;262.4 数据与数据类型27例例2-5 2-5 创
22、建变量并赋值为数组。在命令行窗口依次输入下面命令:在命令行窗口依次输入下面命令:x=123456789y=1,2,3;4,5,6;7,8,9注注2 2:在赋值过程中,如果变量已存在,在赋值过程中,如果变量已存在,MATLAB将使用新值代替旧值,将使用新值代替旧值,并以新的变量类型代替旧的变量类型。并以新的变量类型代替旧的变量类型。2.4 数据与数据类型2.4.3 2.4.3 数据类型数据类型 为了适应多种运算的需要,MATLAB提供了多种数据类型,这些数据类型最大的特点是每一种类型都以数组为基础,从数组中派生出来282.4 数据与数据类型2.4 数据与数据类型说明:在大多数计算机语言中,数组是
23、一种数据类型,它是由若干相同数据类型的数据组成的集合。但在MATLAB中,除了函数句柄以外的所有变量都是一个数组,标量是只包含一个数据的数组,向量是一个一维数组,矩阵是一个二维数组,也就是说标量、向量和矩阵都是用数组来存储的。在本书中,我们之所以把标量、向量、矩阵、数组区分开,主要是因为它们的运算规则不同。29(1)逻辑型(logical):表示“真”、“假”的数据,“真”、“假”可以用true或flase表示,但输出时用1和0来表示例例:定义变量f并赋值为真:f=true(2)字符和字符串(char and string):这种数据就是我们通常所说的文本,一般说字符数据是指ASCII表中的单
24、个字符,而字符串是指由若干个字符组成的字符序列。302.4 数据与数据类型2.4 数据与数据类型字符串的存储方式:1)字符数组:字符数组的每个元素存储一个字符,常量用单引号括起来。如:c1=A;c2=China;c2(1)312.4 数据与数据类型2)字符串数组:字符串数组的每个元素存储一个字符串,常量用双引号括起来(R2017a之前版本不支持)。如:s1=A;s2=China;s2(1)32333、数值型(、数值型(Numeric):):数值型数据就是我们通常所说的数字,根据数值是否有小数分为浮点型或实型和整型。浮点型:根据数据的有效位数又分为单精度和双精度两种:单精度数据在内存中占4个字节
25、,其正数的范围约为1.1754910-383.402821038,有效数字为67位;双精度数据在内存中占8个字节,其正数的范围约为2.2250710-3081.7976910308,有效数字为1516位。u一个数值型数据在没有特殊声明的情况下,默认为双精度型。2.4 数据与数据类型整数型:又分为4个有符号的和4个无符号的整数。int8:占占1Byte,数据,数据范围范围 -128127int16:占占2Byte,数据,数据范围范围 -3276832767int32:占占4Byte,数据,数据范围范围 -231231-1int64:占占8Byte,数据,数据范围范围 -263263-1uint8
26、:占占1Byte,数据,数据范围范围 0255uint16:占占2Byte,数据,数据范围范围 065535uint32:占占4Byte,数据,数据范围范围 0232-1uint64:占占8Byte,数据,数据范围范围 0264-1342.4 数据与数据类型35复数:一个复数实际上是由两部分组成:实部和虚部。复数的数据类型是由实部和虚部的类型决定的设设z=a+bi1)若a和b有一个为single型,则另一个可以是single或double型,z为single型;2)若a和b中有一个整型,则另一个要么是同类型的整型,要么是double,则z是同类型的整型;2.4 数据与数据类型2.4 数据与数据
27、类型36生成一个复数有两种方法:z=complex(a,b),通过两个实数输入创建一个复数输出 z例:z=complex(1,2)若a和b为single或double型,则可以直接用表达式a+b*i生成例:z=3-2i(4)结构体结构体(struct):是指由不同数据类型的数据组成的一个数据集合,其中的每个元素称为一个数据域,数据域的数据类型和大小可以是任意的。每个数据域通过数据域的名字来进行访问。例如:把一个学生的信息存储到一个结构体变量student中:student.num=2018001;student.name=Li Ming;student.age=20;372.4 数据与数据类型
28、2.4 数据与数据类型通过调用struct函数创建一个结构体数组,语法格式如下:s=struct(field1,value1,.,fieldN,valueN),创建一个包含多个字段的结构体数组。例:student=struct(num,2018001,name,Li Ming,age,20)读取student变量中的姓名:student.name38(5)单元单元数组数组(cell):是由不同数据类型的数据组成的一个数据集合,其中每个元素称为一个单元,单元的数据类型和大小可以是任意的,每个单元通过下标来进行访问。用创建单元数组Mycell=1,3,6,China,rand(3),4,3.14,
29、text创建具有指定大小的单元数组,可以使用 cell 函数,格式如下:C=cell(n),返回由空矩阵构成的 nn 单元数组。C=cell(sz1,.,szN),返回由空矩阵构成的 sz1.szN 单元数组,其中,sz1,.,szN 表示每个维度的大小。392.4 数据与数据类型2.4 数据与数据类型对单元数组的访问有两种方式:1)用圆括号,其结果的类型仍然是单元数组,例如:Mycell(1:4)2)用花括号,其结果的类型是单元中数据的类型,如:Mycell440(6)表(Table):是由若干行和列组成的二维表格,每一列有一个名字。表中同一列中的数据必须是同类型的,但不同列的数据类型可以不
30、同。创建表可以使用table函数,格式如下:T=table(var1,.,varN),根据输入变量 var1,.,varN 创建表。变量的大小和数据类型可以不同,但所有变量的行数必须相同。412.4 数据与数据类型2.4 数据与数据类型例例2-6 创建一个学生表,有5个学生,每个学生有学号、姓名、性别、年龄、入学成绩等信息,具体操作如下:num=1000;1001;1002;1003;1004;name=李丽;张浩;刘路;王斌;杨阳;sex=女;男;女;男;男;age=18;17;19;18;19;score=592;588;620;601;599;F=table(num,name,sex,a
31、ge,score)42对表中的数据访问的方式有三种:1)用圆括号,其下标可以用数字,也可以用名称,结果还是表,如:F(1:2,:)或:F(1:2,num,name,sex,age,score)2)用花括号,其下标可以用数字,也可以用名称,但结果是表中的数据。若下标有多个,则组成向量,这时要求数据类型要相同。如:F1:5,score3)用圆点,其结果是表中的数据,如:F.score也可以只提取某几行,如:F.name(1:2)432.4 数据与数据类型(7)函数函数句柄句柄(Function Handle):是一种存储指向函数关联关系的 MATLAB 数据类型。在MATLAB中可以用来间接调用函
32、数。函数句柄可以转递给其他函数,也可以存储起来。创建函数句柄:用加函数名例如:定义一变量保存sin的函数句柄:h=sin;%定义sin函数的句柄h(pi/6);%利用函数句柄计算sin(/6)442.4 数据与数据类型作业的问题4546474849主要内容一、数据类型的转换二、数据文件三、运算符四、基本数学函数502.4 数据与数据类型2.4.4 数据类型的转换数据类型的转换 在用MATLAB进行数据处理时,我们面对的数据类型往往不符合数据处理的要求。例如,我们想要输入一个整数类型的123,如果直接输入123的话,MATLAB默认为这是一个double型数据,这就需要我们进行强制的数据类型转换
33、。511.数值数据之间的转换lB=single(A)将A的数据类型转换为单精度实数。x=single(123);则变量x为单精度实数类型。lBdouble(A)将A的数据类型转换为双精度实数。lBint8(A)将A的数据类型转换为8位有符号整数。i=int8(123);则变量i为8位整数类型。522.4 数据与数据类型532.文本文本转换转换为数值为数值d=base2dec(baseStr,base),把base(2base36)进制表示的数字文本baseStr转换为十进制数,其中baseStr可以是用单引号也可以用双引号括起来的字符序列。n1=base2dec(213,8);d=bin2de
34、c(binStr),把二进制表示的数字文本binStr转换为十进制数。例如:n2=bin2dec(1000101)d=hex2dec(hexStr),把十六进制表示的数字文本hexStr转换为十进制数。例如:n3=hex2dec(5A)2.4 数据与数据类型2.4 数据与数据类型d=str2double(str),把数字文本str转换为双精度实数,str中可以包含数字、一个逗号(千位分隔符)、一个小数点、一个+或-号(在最左边)、一个字母e表示10的幂、一个字母i表示虚数单位。例如:n4=str2double(123.45e7)n5=str2double(123+45i)n6=str2doub
35、le(3.14159)n7=str2double(1,200.34)5455(3)数值转换为数值转换为字符字符S=char(X)把非负整数X转换为ASCII码为X的字符。c1=char(65);c的值为A。str=dec2base(d,base)把非负整数d转换为base进制数的字符串,2base36。c2=dec2base(123,16)str=dec2bin(d)把非负整数d转换为二进制数的字符串。c3=dec2bin(123)str=dec2hex(d)把非负整数d转换为十六进制数的字符串。c4=dec2hex(123)2.4 数据与数据类型2.4 数据与数据类型str=int2str(
36、N)把整数N转换为字符串。c5=int2str(12345)对浮点数会先进行四舍五入,然后再进行转换。c6=int2str(123.65)str=num2str(A)把数值A转换为字符串,若A是浮点数,转换后的字符串依赖于A的数据范围。c7=num2str(pi)564.数值转换为表T=array2table(A)把数值数组A转换为表T。如:A=1 3 5;6 3 8;8 4 6 T=array2table(A)5.表转换为数值A=table2array(T)把表转换为数值数组。如:B=table2array(T)6.结构体转换为表T=struct2table(S)把结构体转换为表。如:T=s
37、truct2table(student)572.4 数据与数据类型2.4.5 数据数据文件文件一般来说,数据是以文件的形式保存在磁盘、U盘等外存上的。数据的导入是将以文件形式保存的数据从外存装入内存的工作区中,以便进行数据处理;数据的导出是将工作区中的数据从内存保存到外存的文件中,以便长期保存。通过数据导入和导出功能,可以从文件、其他应用程序、Web 服务和外部设备访问数据。MATLAB可以读取常见格式的数据文件。582.4 数据与数据类型2.4 数据与数据类型1.MATLAB支持的支持的数据数据文件的类型文件的类型MATLAB使用的数据文件大致有如下几种:(1)MATLAB标准数据文件:扩展
38、名为.mat。(2)文本文件:扩展名可以为任意,常见的是.txt、csv等。(3)电子表格文件:扩展名为.xls或.xlsx。(4)科学数据文件:扩展名为CDF、FITS、HDF、NC等(5)图像文件:扩展名为.bmp,.jpg,.tif,.gif等。(6)声音文件:扩展名为.wav,.snd,.aiff等。(7)视频文件:扩展名为.mov,.mpg,.mp4,.avi等。592.利用利用“导入工具导入工具”导入导入数据数据数据导入的最简单方法是“主页主页”选项卡上“变量区变量区”中的“导入数据导入数据”命令。602.4 数据与数据类型3.利用工作区窗口导出数据利用工作区窗口导出数据2.4 数
39、据与数据类型4.利用利用MATLAB提供的函数进行数据的导入提供的函数进行数据的导入导出导出(1)MATLAB标准数据文件和文本文件数据的导入与导出1)用load函数将数据文件中的数据装入内存工作区中,具体格式如下:load(filename),从数据文件filename导入数据.load(filename,variables),把数据文件filename.mat中variables所指定的变量装入内存中。load(filename,-ascii),把数据文件filename的内容读入内存,这是一个ASCII码文件,系统自动将文件名(filename)定义为变量名。612.4 数据与数据类型例
40、例2-7 2-7 数据导入的练习clear load()%将当前文件夹中matlab.mat数据文件的所有变量装入工作区中。clear load(matlab.mat,x)%将当前文件夹中matlab.mat数据文件的变量x装入到工作区中。622)用save函数将工作区中变量的值保存到数据文件中,具体格式如下:save(filename):所有变量以二进制格式存入名为filename.mat文件,若省略filename则默认文件名为matlab.mat。save(filename,variables):将当前工作空间中variabler所列的变量存入filename.mat文件,variabl
41、es 有多个变量时用逗号分隔。save(filename,-ascii):将当前工作空间中的变量以8位文本格式存入filename.mat文件。save(filename,-append):添加数据到已有filename.mat文件中,若filename为二进制文件则用工作空间中新的值替换文件中已有的变量的值,若为文本文件则将数据添加到文件末尾。632.4 数据与数据类型例例2-8 2-8 数据导出的练习。x=1;y=2;save()save(d:mydata.mat,x)save(data.txt,-ascii)type data.txt注意:上述两个函数也可以使用命令形式调用。642.4
42、数据与数据类型2.4 数据与数据类型例例2-9 定义三个变量a=1,b=2,c=3,全部存入文件mydata中,再把b、c存入另一个文件中;清空工作区后,检查工作区,再调入变量a,再检查工作区。在命令行窗口依次输入下面的命令:a=1;b=2;c=3;save mydata%命令格式 save mydata1 b c clear%清空工作区 whos%显示工作区中的变量 load mydata a whos652.4 数据与数据类型(2)电子表格文件数据的导入与导出电子表格文件数据的导入与导出电子表格文件是一种常用的数据文件,往往包含了数值和字符数据。1)用readtable函数导入数据,其调用
43、格式如下:T=readtable(filename),从文件filename中读取数据创建一个表。T=readtable(filename,Name,Value),基于文件创建一个表,并通过一个或多个名称-值对组参数指定其他选项。readtable可以读取的文件类型包括适用于带分隔符的文本文件(扩展名是txt、dat 或 csv)及适用于电子表格文件(扩展名是 xls、xlsb、xlsm、xlsx、xltm、xltx 或 ods)。readtable 为该文件中的每列在 T 中创建一个变量并从文件的第一行中读取变量名称。默认情况下,readtable 会根据在输入文件的每列中检测到的数据值来创
44、建具有适当数据类型的变量。66例例2-10 2-10 电子表格文件myExample.xlsx中的工作表1包含下面内容:First Second Third 1 2 x 4 5 y 7 8 z 1)读取工作表1中的全部数据:A=readtable(myExample.xlsx)2)只读取工作表1中的部分数据:B=readtable(myExample.xlsx,range,A2:B3)672.4 数据与数据类型2)用writetable函数导出数据,其调用格式如下:writetable(T),将表 T 写入逗号分隔的文本文件,文件名为工作区中表的变量名,扩展名为.txt。如果writetabl
45、e 无法根据输入表名称构造文件名,那么它会写入 table.txt 文件中。T 中每个变量的每一列都将成为输出文件中的列。T 的变量名将成为文件第一行的列标题。writetable(T,filename),写入具有 filename 指定的名称和扩展名的文件。writetable 根据指定扩展名确定文件格式。扩展名必须是下列格式之一:.txt、.dat 或.csv(适用于带分隔符的文本文件).xls、.xlsm 或.xlsx(适用于 Excel 电子表格文件)682.4 数据与数据类型2.4 数据与数据类型例例2-11 将例2-10中变量A中的数据保存到一个名为textdata.xlsx的文件
46、中。writetable(A,textdata.xlsx)69(3)图像文件数据的导入与导出图像文件数据的导入与导出1)用imread函数导入数据在对数字图像处理时,必须先把图像文件数据装入工作区中,MATLAB提供了imread函数来完成这一要求,具体格式如下:A=imread(filename),从 filename 指定的文件读取图像数据,并从文件内容推断出其格式。如果filename 为多图像文件,则 imread 读取该文件中的第一个图像。702.4 数据与数据类型2.4 数据与数据类型例例2-12 ngc6543a.jpg是一张MATLAB自带的、太空望远镜拍摄的图片,请读取图像文
47、件,并显示在屏幕上。imdata=imread(ngc6543a.jpg);imshow(imdata)注:imshow函数的作用是显示图像,712.4 数据与数据类型2)用用imwrite函数导出数据函数导出数据当数字图像处理完后,可以用imwrite函数把图像存入磁盘文件,具体格式如下:imwrite(A,filename),将图像数据 A 写入 filename 指定的文件,并从扩展名推断出文件格式。例例2-13 将用随机数产生的灰度图像写入 PNG文件中。A=rand(100);imwrite(A,mypic.png)72(4)声音文件数据的导入与导出声音文件数据的导入与导出y,Fs=
48、audioread(filename),从名为 filename 的文件中读取数据,并返回样本数据 y 以及该数据的采样率 Fs。audiowrite(filename,y,Fs),以采样率 Fs 将音频数据y 写入名为 filename 的文件。filename的扩展名指定了声音文件的格式,输出数据类型取决于音频数据 y 的输出文件格式和数据类型。732.4 数据与数据类型74例例2-14 2-14 将MATLAB自带的数据文件handel.mat中的数据保存为声音格式的文件,并播放。load handel.mat audiowrite(handel.wav,y,Fs);clear y Fs
49、 y,Fs=audioread(handel.wav);sound(y,Fs);注注:函数sound的作用是播放声音。2.4 数据与数据类型75(5)视频文件数据的导入与导出视频文件数据的导入与导出MATLAB提供了2个函数VideoReader的VideoWriter来实现视频文件的导入与导出v=VideoReader(filename),创建对象 v,用于从名为 filename 的文件读取视频数据。v=VideoWriter(filename),创建一个 VideoWriter 对象以将视频数据写入采用 Motion JPEG 压缩技术的 AVI 文件。2.4 数据与数据类型2.4 数据
50、与数据类型76例例2-15导入MATLAB自带的视频文件xylophone.mp4中的数据并显示第1帧图像。vidObj=VideoReader(xylophone.mp4)vidFrame=readFrame(vidObj);%从变量vidObj中读取第1帧数据imshow(vidFrame)2.5 运算符2.5.1 算术运算符算术运算符 MATLAB的算术运算可以分为两类:数组运算和矩阵运算。数组运算是对应元素之间的运算,运算符有:+(加)、-(减)、.*(乘)、./(右除)、.(左除)、+(正)、-(负)、.(乘方)。矩阵运算是按照矩阵的运算规则进行,运算符有:*(矩阵乘)、/(矩阵右除