1、第1章 认识MATLAB,本章要点操作桌面、帮助系统的使用方法数据操作的有关知识矩阵的基本运算数据和文件操作,1.1 MATLAB概述,一、操作桌面操作桌面包括命令窗口(Command Window)、工作空间窗口(Workspace)、当前目录浏览器(Current Directory)和命令历史窗口(Command History)等四个窗口,其中工作空间窗口和当前目录浏览器共用一个窗口。,1. 命令窗口,命令窗口用于输入MATLAB命令、函数、矩阵、表达式等信息,并显示除图形以外的所有计算结果,是MATLAB的主要交互窗口。当命令窗口出现提示符时,表示MATLAB已准备好,可以输入命令、
2、变量或函数,回车后就可执行。【例1-1】计算A=256/41002128 A=256/4-100*2+128 %从键盘输入,并单击回车键A = %屏幕显示的结果-8 MATLAB语法规定,百分号“%”后面的语句为注释语句。,2. 工作空间窗口,工作空间是MATLAB用于存储各种变量和运算结果的内存空间。在命令窗口中输入的变量、运行文件建立的变量、调用函数返回的计算结果等,都将被存储在工作空间中,直到使用了clear命令清除工作空间或关闭了MATLAB系统为止。注意:函数在运行中会调用的一些临时变量,不会占用工作空间,这些变量在函数运行结束后将被释放。,3. 当前目录浏览器,当前目录是指MATL
3、AB运行文件时的工作目录,只有在当前目录或搜索路径下的文件及函数可以被直接运行或调用,如果没有特殊指明,数据文件也将存储在当前目录下。通常很多人都习惯于建立自己的工作目录,以便于文件和数据的管理,因此在运行文件前要将该文件所在的目录设置为当前目录。 C:Program FilesMATLAB71work,4. 命令历史窗口,命令历史窗口记录已经运行过的命令、函数、表达式等信息,可以进行命令历史的查找、检查等工作,也可以在该窗口中对命令历史进行复制、删除等操作。窗口中除了保留了输入的命令外,还记录了每次打开系统的时间。如果要清除掉这些记录,可以选择Edit菜单中的Clear Command Hi
4、story选项。,二、帮助系统,1帮助浏览器,2help命令,(1)在线帮助总览 help % 在命令窗口直接输入help,显示在线帮助总览 (2)显示基本函数信息 help elfun (3)显示具体函数的帮助信息 help round %显示具体函数的详细信息,本例为round函数注意:MATLAB对字母的大小写是敏感的,变量A与变量a表示两个不同的变量。MATLAB所有的命令和函数都必须用小写 。,3lookfor命令 4What:指定目录下各类文件的性质 5Ver:指定工具箱的版本信息 6.在线帮助页,三、数据结构,1矩阵和数组矩阵是指含有M行、N列(M、N为正整数)数据的矩形结构。数
5、组运算是元素对元素的运算,也就是说无论什么运算,对数组中的元素都是平等进行的;矩阵运算是强调整体的运算,采用线性代数的运算方法。,2数据结构,四、MATLAB的特点,1高效方便的矩阵和数组运算 2语句简单 3编程效率高 4方便的绘图功能 5用户使用方便 6扩充能力强 7开放的源程序 8运行效率低,1.2 数据运算,一、变量 1变量的命名在MATLAB中,变量名可以是由字母、数字或下划线组成的字符序列,最多可包含63个字符,但第一个字符必须是字母。例如:myfile13、ab_1cd、EXAMPE等均为合法变量名,而3dat、_mydat、123.4等都不是合法变量名。 2赋值语句赋值语句的格式
6、:变量名表达式,3预定义变量,二、常用数学函数,三、数据操作,1input函数如果用户想从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为:变量名=input(提示信息,s);说明:提示信息是一个字符串,用于提示用户输入什么样的数据,字符串中若有“n”则表示换行输入。参数s表示允许用户通过键盘输入字符串;缺省s,只允许用户输入一个字符或数字。 a=input(How many applesn,s) How many apples two apples %通过键盘输入two apples a= %运算结果 two apples,2disp函数MATLAB提供的命令窗口输出函数主要
7、是disp函数,其调用格式为:disp(输出项)说明:其中输出项既可以是数字、字符、字符串,也可以是矩阵、变量。disp(a) two apples,3pause函数,当程序运行时,为了查看程序的中间结果或观看输出的图形,有时需要暂停程序的执行。这时可以使用pause函数,其调用格式为:pause(n)说明:n是一个常数,表示延迟多少秒。如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任意键后程序继续执行。若要强行中止程序的运行可使用Ctrl+C命令。 4save函数save命令是将MATLAB工作空间中的变量存入磁盘。具体格式如下:(1)save(2)save dfile(3)
8、save dfile a b(4)save dfile.dat a ascii(5)save dfile.dat a ascii double(6)save(fname,a,-ascii),5load函数,与save函数相对应,load函数是将磁盘上的数据读入到工作空间。具体格式如下: (1)load (2)load dfile (3)x=load fname,例,a=2; b=4; c=6; save mydata1 save mydata2 a b clear %清工作空间 whos %检查工作空间,已没有任何变量 load mydata2 a whosName Size Bytes Cl
9、assa 1x1 8 double array Grand total 1 elements using 8 bytes,1.3 矩阵,一、矩阵的建立在MATLAB中,不需要对矩阵的维数和类型进行说明,MATLAB会根据用户所输入的内容进行配置,创建矩阵有以下三种方法: 1直接输入创建矩阵通过输入矩阵中每个元素的值来建立一个矩阵,只须以左方括号开始,以逗号或空格为间隔输入元素值,行与行之间用分号隔开,最后以右方括号结尾即可。 A=1,2,3;4,5,6;7,8,9 A=1 2 34 5 67 8 9,2向量法创建矩阵,向量可以由冒号和数字产生。其格式为:向量名=初值:增量:终值说明:向量是从初
10、值开始,以增量为步长,直到不超过终值的所有元素所构成的序列。步长可缺省,默认为“1”。当矩阵中的元素很多且有规律时,可通过向量来建立一个矩阵。其基本格式为:矩阵名=向量建立一个10以内的奇数矩阵 A=1:2:10 A=1 3 5 7 9,3函数法创建矩阵,二、矩阵的基本计算,1矩阵与标量的运算运算包括加、减、乘、除和乘方运算。矩阵与标量运算是矩阵的每个元素对该标量的运算。MATLAB用符号“”计算乘方时,按照矩阵运算规则计算,要求矩阵为方矩阵;用符号“.”计算乘方时,按照数组运算规则计算,对矩阵没有限制 。,2矩阵与矩阵的运算,(1)加减运算两个矩阵的维数完全相同时,可以进行矩阵加减法运算。如
11、果两个矩阵的维数不相等,则MATLAB将给出错误信息,提示两个矩阵的维数不相等。 (2)乘法运算两个矩阵的维数相容时(A的列数等于B的行数),可以进行A乘B的乘法运算。 (3)除法运算矩阵的除法运算包括左除和右除两种运算。其中左除:AB=A-1B,A为方矩阵右除:A/B=AB-1,B为方矩阵可见,左除和右除的运算过程以及对矩阵的要求是不一样的,其数学意义也不同。 (4)点运算两个矩阵之间的点运算是按照数组运算规则计算,矩阵的对应元素直接运算。要求参加运算的矩阵大小必须相同。有“.*”、“./”和“.”三种运算符。,三、矩阵的操作,1元素操作 2提取子块 3矩阵合并 4矩阵的转置 5矩阵的展开
12、6矩阵的线性变换:如下表所示。,四、复数和复数矩阵,MATLAB允许在运算和函数中使用复数或复数矩阵。复数的表示借助于特殊的字符i或j,其值在工作空间中都显示为0+1.0000i。 1复数 复数可由以下两种方式输入: z=1+2i z =1.0000 + 2.0000i z=3*exp(i*3.14) z =-3.0000 + 0.0048i 2复数矩阵 复数矩阵有下列两种方法: a=1+2i 3+4i;5+6i 7+8i 或 a=1 3;5 7+i*2 4;6 8 a = 1.0000 + 2.0000i 3.0000 + 4.0000i5.0000 + 6.0000i 7.0000 + 8
13、.0000i,五、稀疏矩阵,1.4 关系运算与逻辑运算,一、关系运算符 注意:=是关系运算符,比较两个变量的关系,相等时返回1,不相等时返回0;=是赋值运算符,将右侧表达式的结果赋给左侧的变量。,二、逻辑运算符,三、其他关系与逻辑函数,1.5 文件操作,一、文件的打开与关闭 1打开文件在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为:fid=fopen(文件名,打开方式)说明:其中fid用于存储文件句柄,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。 2关闭文件当文件进行完读、写等操作后,应及
14、时关闭文件,以免数据丢失。关闭文件用fclose函数,调用格式为:stafclose(fid)说明:该函数关闭fid所表示的文件句柄。sta表示关闭文件操作的返回值,若关闭成功,返回0,否则返回-1,通常缺省sta。如果要关闭所有已打开的文件用fclose(all)。,r:只读方式打开文件(默认),该文件必须已经存在 r+:读写方式打开文件,先读后写,该文件必须已经存在 w:打开后写入数据。该文件已存在则更新,不存在则创建 w+:读写方式打开文件,先读后写,该文件已存在则更新,不存在则创建 a:在打开的文件末端添加数据。文件不存在则创建 a+:打开文件后,先读入数据再添加数据。文件不存在则创建
15、,二、 二进制文件的读写操作,1写二进制文件fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:COUNTfwrite(fid,A,precision)说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。 2读二进制文件fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:A,COUNT=fread(fid,size,precision)说明:其中
16、A是用于存放读取数据的矩阵、COUNT是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;若选用size,则可以是下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、M,N(读M行N列的数据到MN的矩阵中,数据按列存放)。precision用于控制所写数据的精度,其形式与fwrite函数相同。,【例】将一个二进制矩阵存入磁盘文件,A=1 2 3 4 5 6 7 8 9; fid=fopen(d:test.bin,wb) %以二进制数据写入方式打开文件 fid=3 %其值大于0,表示打开成功 fwrite(fid,A,double) ans=9
17、 %表示写入了9个数据 fclose(fid) ans=0 %表示关闭成功,【例】将上例数据文件中的前5个数据读入到矩阵B中,fid=fopen(d:test.bin,rb) %以读入方式打开文件 fid=3 %其值大于0,表示打开成功 B=fread(fid,5,double) %读入前5个数据 B=12345 fclose(fid) ans=0 %表示关闭成功,三、文本文件的读写操作,1读文本文件fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为:A,COUNT=fscanf(fid,format,size)说明:其中A用来存放读取的数据,COUNT返回所读取的数据
18、元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。size为可选项,与fread函数相同。 2写文本文件fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:fprintf(fid,format,A)说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。,【例】创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。,A=string
19、; fid=fopen(d:char1.txt,wt) fprintf(fid,%s,A); fclose(fid); fid1=fopen(d:char1.txt,rt) B=fscanf(fid1,%s) B=string,四、图像文件的读写操作,1读图像文件imread函数用于从文件中读入图像,图像可以是bmp、hdf、jpg或jpeg、pcx、tif或tiff等。其函数格式如下:(1)A=imread(文件名,图像文件格式)说明:A为无符号8位整数(uint8)矩阵。如果读入文件为灰度图像,则A为二维矩阵;如果读入图像为真彩色RGB图像,则A为三维矩阵。(2)A,map=imread(
20、文件名,图像文件格式)说明:map为双精度浮点数(double),其值在01之间。表示图像的颜色值。 2写图像文件imwrite函数用于将图像写入文件,图像格式同imread函数。格式如下:(1)imwrite(A,文件名,图像文件格式)说明:与imread函数相同。(2)imwrite(A,map,文件名,图像文件格式)说明:map表示图像颜色格式,其他与imread函数相同。,上机内容:,1、启动和退出MATLAB。在命令窗口认识help、demo命令,并查找cell、floor、fix、round、rem、sign等函数的用法。2、已知矩阵 求 2A+B、A2-3B、A*B、B*A、A.*B、A/B、AB、A./B、A.B 3、利用函数产生3X4阶单位矩阵和全部元素都是4.5的4X4阶常数矩阵 4、利用函数产生5X5阶随机分布的矩阵和5X5阶正态分布的随机矩阵 5、练习文件读写操作,