第2章MATLAB的基本语法ppt课件.ppt
《第2章MATLAB的基本语法ppt课件.ppt》由会员分享,可在线阅读,更多相关《第2章MATLAB的基本语法ppt课件.ppt(51页珍藏版)》请在三一文库上搜索。
1、第2章 MATLAB的基本语法,2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写 2.5 基本数学函数 2.6 基本绘图方法 2.7 M文件及程序调试,2.1 变量及其赋值,2.1.1 标识符与数,标识符是标志变量名、常量名、函数名和文件名的字符串的总称。在MTLAB中,变量和常量的标识符最长允许19个字符。字符包括全部的英文字母(大小写52个)、阿拉伯数字和下划线等符号,标识符中第一个字符必须是英文字母。,2.1.2 矩阵及其元素的赋值,赋值就是把数赋予代表常量或变量的标识符。在MATLAB中,变量都代表矩阵。 列矢量可被当作只有一列的矩阵
2、;行矢量也可被当作只有一个行的矩阵;标量应看作 11阶的矩阵。赋值语句的一般形式为: 变量表达式(或数),1赋值要求 在输入矩阵时,应遵循以下规则: 整个矩阵的值应放在方括号中; 同一行中各元素之间以逗号“,”或空格分开; 不同行的元素以分号“;”隔开。,2变量的元素的标注,在MATLAB中,变量的元素(即矩阵元)用圆括号“( )”中的数字(也称为下标) 来注明,一维矩阵(也称数组)中的元素用一个下标表示,二维矩阵由两个下标数构成, 以逗号分开,对三维矩阵则由三个下标数构成。,3赋值技巧,(1) 利用冒号“:”给全行的元素赋值,(2) 利用行、列标注构成新的矩阵,4特殊矩阵和数组,(1)单位矩
3、阵函数eye() 函数功能:产生对主角线元素为1,其它元素为0的单位矩阵。eye()的调用格式如下: A=eye(n) 返回一个nn阶单位矩阵; A=eye(m , n) 返回一个mn阶单位矩阵,或用A=eye(m , n);,(2) zeros函数、ones函数、rand以及randn函数,A=zeros(n) 返回一个nn阶零矩阵; A=zeros(m , n) 返回一个mn阶零矩阵;,(3)linspace函数和logspace函数 linspace函数的调用格式如下: y=linspace(a,b) 产生一个行矢量y,该矢量把a和b间的数等分100份而得到。 y=linspace(a,
4、b,n) 产生一个行矢量y,该矢量把a和b间的数等分n份而得到。,5MATLAB内部特殊变量和常数,变量ans:临时变量,通常指示当前的答案。 常数eps:表示浮点相对精度;其值是从1.0到下一个最大浮点数之间的差值。变量值作为一些MATLAB函数计算的相对浮点精度,按IEEE标准,esp= 2-52近似为2.2204e-016。 常数realmax:表示最大正浮点数;任何大于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,realmax略小于21024 ,近似为1.7977e+308。,常数realmin:表示最小正浮点数;任何小于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,
5、realmin略小于2-1024 ,近似为2.2251e-308。 常数pi:表示圆周率 =3.1415926535897.。表达式4*atan(1)和imag(log(-1)产生相同的值。,常数Inf:代表正无穷大,一般被0除或溢出则产生无穷大结果。如2/0,210000均产生结果:Inf;而log(0)产生结果:-Inf。 虚数单位i,j:表示复数虚部单位,相当于 。 NaN:表示非数值。如当Inf-Inf,Inf/Inf, 0*Inf,0/0均产生该结果。,6复数的赋值方式 MATLAB的每一个元素都可以是复数,实数是复数的特例。复数的虚数部分用i或j表示。对复数矩阵有两种赋值方法: (
6、1)可将矩阵元逐个赋予复数 (2)将矩阵的实部和虚部分别赋值:,7变量检查 在程序调试或变量的赋值过程,往往需要检查工作空间中的变量、变量的阶数以及变量赋值内容。在检查变量及其阶数等内容时,既可用工作空间窗口,也可在命令窗口使用who或whos命令来完成检查。当查看某变量的赋值情况,可在命令窗口直接键入该变量名回车即可。,2.2 运算符与复数运算,算术运算符:进行数值计算。 关系运算符:比较两个操作数的大小。 逻辑运算符:进行逻辑运算。,2.2.1 算术运算符,(1)矩阵加减法“”:AB 功能:两矩阵对应元素相加减。因此,A和B两矩阵必须有相同的大小,或其中之一 为标量,标量可以与任意大小的矩
7、阵相加。 (2)矩阵相乘“*”:A*B 功能:C =A*B为两矩阵线性代数的乘积,即,(3) 矩阵元素相乘“.*”:A.*B 功能:矩阵A和B的对应元素相乘;因此,A和B必须大小相同,或其中之一为标量。 (4)矩阵右除“B/A”与左除“AB” 如果A为一非奇异矩阵,则B/A与AB可通过A的逆矩阵与B矩阵得到:B/A=B*inv(A); AB=inv(A)*B。,(5)矩阵元素右除“A./B”与左除“A.B” 矩阵元素右除“A./B”表示矩阵元素A(i,j)/B(i,j);矩阵元素左除“A./B” 表示矩阵B(i,j)/A(i,j),因此,A和B必须大小相同,或者其中之一为标量。 (6)矩阵幂“
8、”:Xp 如果p为标量,表示X的p次幂;如果X为标量,而p为矩阵,Xp用特征值和特征特征 向量表示X的矩阵p次幂。注意X和p不能同时为矩阵,但必须是方阵。 (7)矩阵元素幂“.”:A.B A.B表示矩阵元素A(i,j)的B(i,j)次幂,A与B必须大小相同,或者其中之一为标量。,(8) 矩阵转置“ ” A表示矩阵A的线性代数转置。对于复矩阵,表示复共轭转置。 (9) 非共轭转置“ . ” A.表示非共轭转置;对于复矩阵,不包括共轭。 (10)冒号操作符“:” 冒号是一个非常有用的操作符;可以产生向量、数组下标以及for循环。,关系比较结果只有两种可能,即1或0。1表示关系式这“真”,即关系式正
9、确;0表示该关系为“假”,即它不成立。,2.2.3 逻辑操作符,通常逻辑变量只能取0(假)和1(真)两个值。逻辑量的基本运算除“与(&)”、“或(|)”和“非()”外,有时也包括“异或(xor)”,不过“异或”可以用3种基本运算组合而成。两个逻辑量经过这4种逻辑运算后的输出仍然是逻辑量。,2.2.2 关系操作符,关系运算是指两个元素之间数值的比较。MATLAB所提供的关系操作符如表所示。,2.2.4 关系与逻辑函数,其他关系与逻辑函数,测试函数,2.2.5复数运算,1MATLAB中所有的运算符和函数都对复数有效。,2复数的共轭可利用函数“conj”来完成,2.3 控制流,2.3.1 If语句
10、if语句称为条件执行语句。 其关键字包括if、else、elseif和end。,格式之一: if 表达式 语句组A end 其工作流程如图所示。,注意:语句中的end是决不可少的,没有它,在逻辑表达式为0时,就找不到继续执行程序的入口。,格式之二: if 表达式 语句组A else 语句组B end 其工作流程如图所示。,格式之三: if 表达式1 语句组A elseif 表达式2 语句组B else 语句组C end 工作流程原理如图2.3所示。,switch 选择表达式 case 情况表达式1 语句组1 case 情况表达式2 语句组2 otherwise 语句组n end,2.3.2 S
11、witch语句,switch语句,也是条件选择结构。其关键字包括switch、case、otherwise和end。它主 要用于有选择性的程序设计,实现程序的多分支选择。其调格式为:,2.3.3 While语句 while语句为条件循环语句,循环执行一组语句,执行次数不确定,而是决定于一些逻辑条件。其关键字包括while、end、break等。 基本调用格式: while 表达式 语句A end,2.3.4 for语句,for语句也是循环语句,但与while语句不同的是,它循环执行一组语句的执行次数是 确定。其关键字包括for、end、break等。调用的基本格式如下: for index=初
12、值:增量:终值 语句组A end 功能:把语句组A(亦称为循环体)反复执行N次。循环次数N为: N1+(终值-初值)/增量 在每次执行时程序中的index的值按“增量”增加。,注意: (1)For循环不能用For循环内重新赋值循环变量n来终止。 (2)在For循环内接受任何有效的MATLAB数组。 (3) for循环可按需要嵌套。与其它的编程语言类似,for语句可以嵌套使用。 (4) 当有一个等效的数组方法来解给定的问题时,应避免用For循环。 (5) 为了提高处理的速度,在For循环(While循环)被执行之前,应预先分配数组。,2.4 数据的输入输出及文件的读写,2.4.1 交互输入与输出
13、命令和函数,1键盘输入命令input 格式一:u=input(提示内容) 格式二: u=input(提示内容,s) 在屏幕上显示提示内容,等待从键盘输入,将输入的符号以字符串赋给文本(字符串)变量u。,2. 菜单输入命令menu 功能:产生一个供用户输入的选择菜单。 格式: k=menu(title,选项1,选项2,选项n) 显示以字符串变量title为标题的菜单,选择为字符变量:选项1,选项2, 选项n,并将所输入的值赋给变量k。,3暂停执行命令pause pause 常用在M文件中,用于停止执行,直接按任意键继续执行; pause(n) 暂停执行n秒后继续执行; pause on 允许一系
14、列pause命令暂停程序执行; pause off 保证任何pause命令和pausea(n)语句不能暂停程序执行。,4显示命令 disp 功能:显示指定的变量或变量的内容。 调用格式: disp(变量名),5按格式要求输出变量命令sprintf 功能:按格式要求输出变量 调用格式: sprintf(显示格式,变量)。,2.4.2 文件输入输出命令与函数,1save 功能:用以将工作空间中的变量保存到磁盘上。 格式一: save 将工作空间中的所有变量保存在一个名为:“matlab.mat”的二进制格式文件中,该文件可通过load命令来重新装入工作空间。 格式二: save 文件名 变量名 将
15、工作空间中指定的“变量名”保存在指定“文件名.mat”的二进制格式文件中。 格式三: save 文件名 选项 使用“选项”指定ASCII文件格式,将工作实间中所有变量保存到“文件名”所指定的文件中。,2. load: 功能:从磁盘文件中重新调入变量内容到工作空间。 格式一: load 将保存在“matlab.mat”文件中的所有变量调入到工作空间。 格式二: load 文件名 从“文件名 . mat”中调入变量,可给出全部路径。 3. fopen 功能:打开文件或获得打开文件信息。 格式一: f_id=fopen(文件名,允许模式),以允许模式指定的模式打开“文件名”所指定的文件,返回文件标识
16、f_id; 允许模式 可以是下列几个字符串之一: r : 打开文件进行读(缺省型式); w : 删除己存在文件中的内容或生成一个新文件,打开进行写操作; a :打开一个己存在的文件或生成并打开一个新文件,进行写操作,在文件末尾添加 数据;,格式二: f_id , message=fopen (文件名,允许模式,格式) 功能:用指定的数据“格式”打开数据文件,返回文件标识和打开文件信息两个参数。 “数据格式”。,如果fopen成功打开文件,则返回文件标识f_id,message内容为空,如果不能成功打开,则返回f_id值为1,message中返回一个有助于判断错误类型的字符串。 有三个值是预先定
17、义的,不能打开或关闭: 0:表示标准输入,一直处于打开读入状态。 1:表示标准输出,一直处于打开追加状态。 2:表示标准错误,一直处于打开追加状态。,4fclose 功能:关闭一个或多个已打开的文件。 格式一: status=fclose(f_id) 关闭指定文件,返回0表示成功,返回-1表示失败。 格式二 status=fclose(all) 功能: 关闭所有文件,返回0表示成功,返回-1表示失败。,5fread 格式一: A, count=fread(f_id, size, 精度) 功能:从指定文件中读入二进制数据,将数据写入到矩阵A中;可选输出count返回成功读入元素个数;f_id为整
18、数文件标识,其值由fopen函数得到;可选参数size确定读入多少数据,如果不指定参数size,则一直读到文件结束为止,参数size合法选择有: n :读入n个元素到一个列向量; inf :读到文件结束,返回一个与文件数据元素相同的列向量; m, n:读入足够元素填充一个mn阶矩阵,填充按列顺序进行,如果文件不够大,则填充0。 精度表示读入数据精度的字符串,控制读入每个值的数据位,这些位可以是整数型、浮点值或字符。,格式二: A, count=fread(f_id, size,精度,skip) 可选参数skip,指定每次读操作跳过字节数,如果精度是某一种位格式,则每次读操作将跳过相应位数。,6
19、fwrite 功能:向文件中写入二进制数据。 格式一: count=fwrite (f_id, A,精度) 将矩阵A中元素写入指定文件,将其值转换为指定的精度。 格式二: count=fwrite(f_id,A,精度,skip) 可用参数skip指定每次写操作跳过指定字节。,7fscanf 格式一: A=fscanf (f_id, 格式) 从由f_id所指定的文件中读入所有数据,并根据格式字符串进行转换,并返回给矩阵A,格式字符串指定被读入数据的格式。 格式二: A, count=fscanf(f_id,格式,size) 读入由size指定数量的数据,并根据格式字符进行转换,并返回给矩阵A,同
20、时返回成功读入的数据数量count。 8fprintf 格式一: count=fprintf(f_id,格式,A,) 将矩阵A或其它矩阵的实部数据以格式字符串指定的形式进行规格化,并将其写入指定的文件中,其返回值为写入数据的数量。 格式二: fprintf(格式,A,) 将A或其它值以格式给定的形式输出到标准输出显示屏幕上。,9fgets 功能:以字符串形式返回文件中的下一行内容,包含行结束符。 格式一: ctr=fgets(f_id) 返回文件标识为f_id的文件中的下一行内容,如果遇到文件结尾(EOF),则返回-1,所返回的字符串中包括文本结束符,用fgetl( )则返回的字符串中不包括行
21、结束符。 格式二: str=fgest(f_id,n) 返回下行中最多n个字符,在遇到行结束符或文件结束(EOF)时不追加字符。 10fgetl 功能:以字符串形式返回文件中的下一行内容,但不含行结束符。 格式: str=fgetl(f_id) 返回文件标识为文件中的下一行内容,如果遇到文件结尾,则返回1,所返回的字符串中不包括行结束符。,11ferror 功能:查询MATLAB关于文件输入、输出操作的错误。 messgeg=ferror(f_id) 将标识为f_id的已打开文件的错误信息返回给message变量。 12feof 功能:测试文件结尾(EOF)。 格式: eoftest=feof
22、(f_id) 测试指定文件是否设置了EOF;如果返回1则表示设置了EOF指示器,返回0未设置。,13imread 功能: 从图像文件中读入图像 格式一: A=imread(文件名,图像文件格式) 将文件名指定的图像文件读入A,A为无符号8位整数(uint8)。如果文件为灰度图像, 则A为一个二维数组;如果文件是一个真彩色RGB图像,则A是一个三维数组(m*n*3)。 格式二:A, map=imread(文件名,图像文件格式) 读入索引图像到矩阵A,其调色板值返回给map,A为无符号8位整数(uint8),map 为双精度浮点数,其值在0,1范围内。,14imwrite :将图像写入图像文件中。
23、 格式一: imwrite(A, 文件名,图像文件格式) 格式二: imwrite(A,map,文件名,图像文件格式) 将A中的索引图像及其相关的调色板map存放到指定文件。调色板map必须是MATLAB 的有效调色板。注意大多数图像文件格式不支持大于256条的调色板。,15imfinfo 功能:返回图像文件信息 格式: info=imfinfo(文件名,图像文件格式) 返回一个图像信息结构,或结构数组。图像文件格式与imread函数的一样。,16auread 功能: 读入声音文件(.au) 格式一: Y=auread (aufile) 读入由文件名aufile指定的声音文件,返回采样数据给变
24、量Y。如果文件名中没有扩 展名,则自动在其后加上.au作为扩展名。幅值在-1,1范围内。支持多通道数据格式: 8-bit mu-law;或 8-, 16-, 32-bit linear。 格式二: Y, Fs,bits=auread(aufile) 返回采样率Fs(Hz)以及文件中每数据编码时所用的位数(bits)。 17Auwrite 功能:向文件(. au)中写入声音数据。 格式一: auwrite(A, 文件名. Au ) 向文件名. au指定的文件中写入声音数据,数据在A中以一个通道一列的方式安排, 幅值超过-1, +1范围时,在写入前先进行剪裁处理。 格式二: auwrite(A,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 基本 语法 ppt 课件
链接地址:https://www.31doc.com/p-2566046.html