《第1章认识MATLAB.ppt》由会员分享,可在线阅读,更多相关《第1章认识MATLAB.ppt(73页珍藏版)》请在三一文库上搜索。
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 B=sin(pi/2) B = 1 注意:百分号“%”后面的语句为注释语句,不执行。,2. 工作空间窗口,工作空间是MATLAB用于存储各种变量和运算结果的内存空间。在命令窗口中输入的变量、运行文件建立的变量、调用函数返回的计算结果等,都将被存储在工作空间中,直到使用了clear命令清除工作空间或关闭了MATLAB系统为止。 注意:函数在运行中会调用的一些临时变量,不会占用工作空间,这些变量在函数运行结束后将被
3、释放。,3. 当前目录浏览器,当前目录是指MATLAB运行文件时的工作目录,只有在当前目录或搜索路径下的文件及函数可以被直接运行或调用,如果没有特殊指明,数据文件也将存储在当前目录下。 通常很多人都习惯于建立自己的工作目录,以便于文件和数据的管理,因此在运行文件前要将该文件所在的目录设置为当前目录。,4. 命令历史窗口,命令历史窗口记录已经运行过的命令、函数等信息,可以进行命令历史的查找、检查等工作,用上下翻;可以在该窗口中对命令历史进行复制、删除等操作。 窗口中除了保留了输入的命令外,还记录了每次打开系统的时间。 如果要清除掉这些记录,可以选择Edit菜单中的Clear Command Hi
4、story选项。,二、帮助系统,1帮助浏览器,2help命令,(1)在线帮助总览 help % 显示帮助总览 若要强行中止程序的运行可使用Ctrl+C命令。 (2)显示基本函数信息 help elfun(帮助基本函数) (3)显示具体函数的帮助信息 help round %显示具体函数的详细信息,本例为round函数,3lookfor命令 lookfor sin RobotEX.m: % This demo animates a robotic arm using the picture control. By SUBSINDEX Subscript index. java.m: %Using
5、 Java from within MATLAB. 注意:MATLAB对字母的大小写是敏感的,变量A与变量a表示两个不同的变量。MATLAB所有的命令和函数都必须用小写 。,4模糊查询,输入函数的前几个字母,单击键,三、数据结构,1矩阵和数组 矩阵是指含有M行、N列(M、N为正整数)数据的矩形结构。 数组运算是元素对元素的运算,也就是说无论什么运算,对数组中的元素都是平等进行的; 矩阵运算是强调整体的运算,采用线性代数的运算方法。,例 子:, A=1 2;3 4; B=1 0;0 1; A*B ans = 1 2 3 4 A.*B ans = 1 0 0 4,2数据结构,1.1 附 加 内 容
6、,1.2 数据运算,一、变量 1变量的命名 在MATLAB中,变量名可以是由字母、数字或下划线组成的字符序列,最多可包含63个字符,但第一个字符必须是字母。例如:myfile13、ab_1cd、EXAMPE等均为合法变量名,而3dat、_mydat、123.4等都不是合法变量名。 2赋值语句 赋值语句的格式:变量名表达式,3预定义变量,二、常用数学函数,1. 简单的数学运算,最简单的计算器使用法 标点符号的使用 常用的操作命令和键盘技巧,(1) 最简单的计算器使用法(2种),直接输入法 (在命令窗口的提示符下直接输入计算式) 3*30+3*35+4*30+4*32 ans = 443,存储变量
7、法 a1=3*30; a2=3*35; s=a1+a2 s = 195,数值运算符号,(2)常用标点符号,分号 ;,取消运行显示。加入分号后,按回车键不会显示运行结果;, a1=3*30; a2=3*35; s=a1+a2 s = 195, a2=3*35, a2 = 105 a2=3*35 a2 = 105,逗号 , 我们也可以将多个指令打在同一行,以, 或; 分开,使用逗号时显示运行结果,使用分号时不显示运行结果 r=2, area=pi*r2 r = 2 area = 12.5664 r=2; area=pi*r2;,百分号%,使用%对程序注解;在%之后的任何文字都被视为程序的注解,内容
8、不被执行。 在可能产生混淆 的地方都应该省用注解,将适量的注解可在往后想了解程序时能节省一些不必要的时间。 例如 r=2; % 键入半径 area=pi*r2; % 计算面积,续行号. (3个连续的句号),如果一个指令过长可以在结尾加上.(代表此行指令与下一行连续), 例如 r=2; area = pi . *r2,2. 常用的操作命令和键盘技巧,在使用MATLAB 7语言编制程序时,掌握一些常用的操作命令和键盘操作技巧,操作起来更方便。,(1)常用的操作命令,(2)常用的键盘操作和快捷键,三、数据操作,1input函数 如果用户想从键盘输入数据,则可以使用input函数来进行,该函数的调用格
9、式为: 变量名=input(提示信息,s); 说明:提示信息是一个字符串,用于提示用户输入什么样的数据,字符串中若有“n”则表示换行输入。参数s表示允许用户通过键盘输入字符串;缺省s,只允许用户输入一个字符或数字。,2disp函数 MATLAB提供的命令窗口输出函数主要是disp函数,其调用格式为: disp(输出项) 说明:其中输出项既可以是数字、字符、字符串,也可以是矩阵、变量。 A=23; disp(A) 23,3pause函数,当程序运行时,为了查看程序的中间结果或观看输出的图形,有时需要暂停程序的执行。这时可以使用pause函数,其调用格式为: pause(n) 说明:n是一个常数,
10、表示延迟多少秒。如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任意键后程序继续执行。 若要强行中止程序的运行可使用Ctrl+C命令。,4save函数 save命令是将MATLAB工作空间中的变量存入磁盘。具体格式如下: (1)save 二进制格式;文件名为matlab.mat (2)save dfile 二进制格式;文件名为dfile.mat 注意:如果要保存到其他路径,可在文件名前加上路径,(3)save dfile a b 把变量a b以二进制格式存入当前路径下的dfile.mat 注意:变量间用空格隔开 save one2 a b (4)save dfile.dat a
11、ascii 将变量a 以8位ASCII码形式存入dfile.mat文件 save one1.dat a -ascii,(5)save dfile.dat a ascii double 将变量a 以16位ASCII码形式存入dfile.mat文件 a=1,2;3,4; save one.dat a -ascii -double (6)save(fname,a,-ascii) save(fname,a,-ascii),5load函数,与save函数相对应,load函数是将磁盘上的数据读入到工作空间。具体格式如下: (1)load 把默认文件名matlab.mat的内容读入内存 (2)load df
12、ile 把dfile装入内存: load one.dat (3)x=load( fname) x=load (dfile) x = 1 2 3 3 4 2 3 4 6,hold的用法,x=(0:0.1:20); y1=sin(x); plot(x,y1) pause hold on y2=cos(x); plot(x,y2,r*) pause hold off y3=tan(x); plot(x,y3,g),1.3 矩 阵,一、矩阵的建立 在MATLAB中,不需要对矩阵的维数和类型进行说明,它自己会根据用户所输入的内容进行配置,创建矩阵有以下三种方法: 1直接输入创建矩阵 通过输入矩阵中每个元
13、素的值来建立一个矩阵,只须以左方括号开始,以逗号或空格为间隔输入元素值,行与行之间用分号隔开,最后以右方括号结尾即可。,2向量法创建矩阵 向量可以由冒号和数字产生。其格式为: 向量名=初值:增量:终值 说明:向量是从初值开始,以增量为步长,直到不超过终值的所有元素所构成的序列。步长可缺省,默认为“1”。当矩阵中的元素很多且有规律时,可通过向量来建立一个矩阵。其基本格式为: 矩阵名=向量,3函数法创建矩阵,例子:,b=randperm(5) %括号内只能一个数字 b = 2 4 3 5 1 d=randn(2,3) d = -0.4326 0.1253 -1.1465 -1.6656 0.287
14、7 1.1909,二、矩阵的基本计算,1矩阵与标量的运算 运算包括加、减、乘、除和乘方运算。 矩阵与标量运算是矩阵的每个元素对该标量的运算。 MATLAB用符号“”计算乘方时,按照矩阵运算规则计算,要求矩阵为方矩阵;用符号“.”计算乘方时,按照数组运算规则计算,对矩阵没有限制 。,2矩阵与矩阵的运算,(1)加减运算 两个矩阵的维数完全相同时,可以进行矩阵加减法运算。如果两个矩阵的维数不相等,则MATLAB将给出错误信息,提示两个矩阵的维数不相等。 (2)乘法运算 两个矩阵的维数相容时(A的列数等于B的行数),可以进行A乘B的乘法运算。,(3)除法运算 矩阵的除法运算包括左除和右除两种运算。 其
15、中 左除:AB=A-1B,A为方矩阵 右除:A/B=AB-1,B为方矩阵 可见,左除和右除的运算过程以及对矩阵的要求是不一样的,其数学意义也不同。,(4)点运算,两个矩阵之间的点运算是按照数组运算规则计算,矩阵的对应元素直接运算。要求参加运算的矩阵大小必须相同。有“.*”、“./”和“.”三种运算符。,三、矩阵的操作,1元素操作 b=randperm(2) b = 2 1 b(2)=0 b = 2 0 b(5)=0 b = 2 0 0 0 0,2提取子块, a a = 1 2 3 3 4 2 3 4 6 c=a(1:2,:) c = 1 2 3 3 4 2,3矩阵合并, a a = 1 2 3
16、 3 4 2 3 4 6 c=a(1:2,:) c = 1 2 3 3 4 2, A=a;c A = 1 2 3 3 4 2 3 4 6 1 2 3 3 4 2,4矩阵的转置, a a = 1 2 3 3 4 2 3 4 6 a ans = 1 3 3 2 4 4 3 2 6,5矩阵的展开, b=a(:) b = 1 3 3 2 4 4 3 2 6, a a = 1 2 3 3 4 2 3 4 6,6矩阵的线性变换:如下表所示,例子:, B=magic(3) B = 8 1 6 3 5 7 4 9 2 triu(B) ans = 8 1 6 0 5 7 0 0 2,四、复数和复数矩阵,MATL
17、AB允许在运算和函数中使用复数或复数矩阵。复数的表示借助于特殊的字符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.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i,五、稀疏矩阵,例子:, A=speye(
18、3,4) A = (1,1) 1 (2,2) 1 (3,3) 1 B=full(A) B = 1 0 0 0 0 1 0 0 0 0 1 0, C=find(A) C = 1 5 9,1.4 关系运算与逻辑运算,一、关系运算符 注意:=是关系运算符,比较两个变量的关系,相等时返回1,不相等时返回0;=是赋值运算符,将右侧表达式的结果赋给左侧的变量。,二、逻辑运算符,三、其他关系与逻辑函数,1.5 文件操作,一、文件的打开与关闭 1打开文件 在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为: fid=fopen(文件名,打开方式) 说
19、明:其中fid用于存储文件句柄,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。,2关闭文件,当文件进行完读、写等操作后,应及时关闭文件,以免数据丢失。关闭文件用fclose函数,调用格式为: stafclose(fid) 说明:该函数关闭fid所表示的文件句柄。sta表示关闭文件操作的返回值,若关闭成功,返回0,否则返回-1,通常缺省sta。如果要关闭所有已打开的文件用fclose(all)。,二、 二进制文件的读写操作,1写二进制文件 fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为: COUNTfwrite(fid,A,pr
20、ecision) 说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。,2读二进制文件,fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为: A,COUNT=fread(fid,size,precision) 说明:其中A是用于存放读取数据的矩阵、COUNT是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;若选用size,则可以
21、是下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、M,N(读M行N列的数据到MN的矩阵中,数据按列存放)。precision用于控制所写数据的精度,其形式与fwrite函数相同。,例子:, a a = 1 2 3 3 4 2 3 4 6 fid=fopen(test,wb) fid = 8, fwrite(fid,a,double) ans = 9,例子:, fclose(fid) ans = 0 fid=fopen(test,rb) fid = 8, b=fread(fid,5,double) b = 1 3 3 2 4,三、文本文件的读写操作,1读文本文件 fscanf函数
22、可以读取文本文 件的内容,并按指定格式存入矩阵。其调用格式为: A,COUNT=fscanf(fid,format,size) 说明:其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。 size为可选项,与fread函数相同。,2写文本文件,fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为: fprintf(fid,format,A) 说明:fid为文件句柄
23、,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。,例子:, fid=fopen(fname,rt) %用save保存的 fid = 12 s=fscanf(fid,%f) s = 1 2 3 3 4 2 3 4 6,四、图像文件的读写操作,1读图像文件 imread函数用于从文件中读入图像,图像可以是bmp、hdf、jpg或jpeg、pcx、tif或tiff等。其函数格式如下: (1)A=imread(文件名,图像文件格式) 说明:A为无符号8位整数(uint8)矩阵。如果读入文件为灰度图像,则A为二维矩阵;如果读入图像为真彩色RGB图像,则A为三维矩阵。,(2)A,map=imread(文件名,图像文件格式) 说明:map为双精度浮点数(double),其值在01之间。表示图像的颜色值。,2写图像文件,imwrite函数用于将图像写入文件,图像格式同imread函数。格式如下: (1)imwrite(A,文件名,图像文件格式) 说明:与imread函数相同。 (2)imwrite(A,map,文件名,图像文件格式) 说明:map表示图像颜色格式,其他与imread函数相同。,例子:,A=imread(cameraman.tif,tif); imshow(A) imwrite(A,xxx.jpg,jpg);,
链接地址:https://www.31doc.com/p-2496921.html