1、第3章 MATLAB程序设计,2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写 2.5 基本数学函数 2.6 基本绘图方法 2.7 M文件及程序调试,2.5 基本数学函数,2.5.1 三角函数1正弦sin函数与反正弦函数asin函数 格式:Asin(X) 功能:对矩阵或数组X的每个元素求正弦值,所有角度用弧度表示。 格式:Xasin(A) 功能:对于A的元素求反正弦值,结果为弧度。,2双曲正弦sinh函数与反双曲正弦函数asinh函数 格式:Asinh(X) 功能:对矩阵或数组X的每个元素求双曲正弦值。 格式:Xasinh(A) 功能:对于A
2、的元素求反双曲正弦值。,3余弦cos函数与反余弦函数acos函数 格式:Acos(X) 功能:对矩阵或数组X的每个元素求余弦值,所有角度用弧度表示。 格式:Xacos(A) 功能:对于A的元素求反余弦值,结果为弧度。,4双曲余弦cosh函数与反双曲余弦函数acosh函数 格式:Acosh(X) 功能:对矩阵或数组X的元素求双曲余弦值。 格式:Xacosh(A) 功能:对于A的元素求反双曲余弦值。,5正切tan函数与反正切函数atan函数 格式:Atan(X) 功能:对矩阵或数组X的每个元素求正切值,所有角度用弧度表示。 格式:Xatan(A) 功能:对于A的每个元素求反正切值,结果为弧度。,6
3、四象限反正切atan2函数 格式:P=atan2(Y,X) 功能:四象限反正切函数。返回大小与Y、X相同的矩阵或数组,由Y和X对应元素的 实部求反正切值得到,其中虚部忽略。,7双曲正切tanh函数与反双曲正切atanh函数 格式:Atanh(X) 功能:对于X的每个元素求双曲正切值。 格式:Xatanh(A) 功能:对于A的每个元素求反双曲正切值。,8正割sec函数与反正割asec函数 格式:Asec(X) 功能:对X的每个元素求正割。 格式:Xasec(A) 功能:返回A的每个元素的反正割值。,9双曲正割sec函数与反双曲正割asec函数 格式:Asech(X) 功能:对X的每个元素求双曲正
4、割。 格式:Xasech(A) 功能:返回A的每个元素的反双曲正割值。,10余割csc函数与反余割acsc函数 格式:Acsc(X) 功能:对X的每个元素求正割。 格式:Xachc(A) 功能:返回A的每个元素的反正割值。,11双曲余割csch函数与反双曲余割asch函数 格式:A=csch(X) 功能:对X的每个元素求双曲余割。 格式:Xacsch(A) 功能:返回A的每个元素的反双曲余割值。,12余切cot函数与反余切acot函数 格式:A=cot(X) 功能:对X的每个元素求余切。 格式:Xacot(A) 功能:返回A的每个元素的反余切值。,13双曲余切coth函数与反双曲余切函数aco
5、th函数 格式:A=coth(X) 功能:对X的每个元素求双曲余切。 格式:Xacoth(A) 功能:返回A的每个元素的反双曲余切值,2.5.2 指数、对数、幂运算,1指数exp函数与自然对数log函数 格式:Aexp(X) 功能:返回X每个元素的以e为底的指数值。 格式:Xlog(A) 功能:返回A的每个元素的自然对数。,2常用对数logl0函数 格式:Xlogl0(A) 功能:对A的每个元素求常用对数。,3 log2函数和幂函数pow2 格式:Xlog2(A) 功能:对A的每个元素计算其以2为底的对数。 格式:A=pow2(X) 功能:A的元素为2对X每个元素求幂得到。,4平方根函数 格式
6、:A=sqrt(X) 功能:返回对数组X每个元素求平方根的数组,如果元素为负或复数,则结果为复数。,2.5.3 复数的基本运算,1求复数实部函数real 格式:X=real(Z) 功能:返回复数Z的每个元素的实部。 2求复数的虚部函数imag 格式:Y=imag(Z) 功能:返回复数Z的每个元素的虚部。 3绝对值和复数模函数abs 格式:A=abs(Z) 功能:返回Z每个元素的绝对值。如果Z的元素是复数,则返回其模。,4求相角函数angle 格式:P=angle(Z) 功能:对Z的每个元素求相角。 5共轭函数conj 格式:C=conj(Z) 功能:对Z的每个元素求共轭复数。,2.5.4 数据
7、的取舍与保留,1向0方向取整数函数fix 格式:I=fix(X) 返回X中每个元素的最靠近零的整数。若X为复数,则分别对X的实部和虚部取整。,2向-方向取整数函数floor 格式:I=floor(X) 返回X中每个元素的最靠近该元素的最小整数。若X为复数,则分别对X的实部和虚部取最小整。,3向-方向取整数函数ceil 格式:I=ceil(X) 返回X中每个元素的最靠近该元素的最大整数。若X为复数,则分别对X的实部和虚部取最大整数。 4四舍五入取整数函数round 格式:I=round(X) 返回X中每个元素的最靠近该元素的整数。若X为复数,则分别对X的实部和虚部取整数。,5模数余函数mod 格
8、式:M=mod(X,Y) 返回X关于Y的余数。6除后余数函数rem 格式:M=rem(X,Y) 功能:返回X关于Y的余数。,7符号函数sign 格式:s=sign(X) 如果X大于零,则返回1;如果X等于零,则返回0;如果X小于零,则返回-1。 如果X为复数,则算法为:SIGN(X) = X ./ ABS(X)。,3.1 M文件及其使用方法,M文件:由MATLAB命令语句构成的程序文件称作M文件,它将.m作为文件的扩展名。可以直接阅读并用任何文本编辑器来建立这种文件。 M文件可分为两种:主程序和子程序。 主程序 (也称主程序文件,脚本文件): 一般是由用户为解决特定的问题而编制的程序。 子程序
9、 (称为函数文件):它必须由其它M文件来调用。函数文件往往具有一定的通用性,并且可以进行递归调用。,(1)有关程序的功能、使用方法等内容的注释。主程序前面的若干行通常是程序的注释,每行以“”开始。 (2)程序的主体。 (3)整个程序应按MATLAB标识符的要求起文件名,并加上后缀m。,3.1.2 脚本文件主程序文件的格式特征如下:,对主程序文件的运行方式通常有两种: 在MATLAB的命令窗口中运行:在MATLAB的命令窗中键入此程序的文件名后,系统就开始执行文件中的程序; 在编辑窗口中运行:通过编辑窗口打开所要运行的文件,然后再运行。主程序文件中的语句可以对MATLAB工作空间中的所有数据进行
10、运算操作。,3.1.3函数文件结构 函数文件是用来定义子程序的。它与主程序文件的主要区别有三点: (1)由function起头,后跟的函数名必须与文件名相同; (2)有输入输出变元(变量),可进行变量传递; (3)除非用global声明,程序中的变量均为局部变量,不保存在工作空间中。,通常,函数文件由五部分构成: 函数定义行; H1行; 函数帮助文本; 函数体; 注释。,函数定义命令function( ) 格式:function output1,output2,= functionname (input1,input2,.) 功能:定义函数名为functionname的函数(或子程序),该函数
11、的输出变量为output1,output2,,输出变量为 (input1,input2,.)。例如:function y=mean(x,dim) function为函数定义的关键字,mean为函数名,y为输出变量,x和dim为输入变量。 注意:当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。例如:functionx,y,zsphere(theta,phi,rho)。当函数不含输出变量时,则直接略去输出部分或采用空方括号表示。,2.7.2 局部变量与全局变量,通常,在MATALB工作空间中,变量有三类: 由调用函数传递输入和输出数据的变量; 在函数内临时产
12、生的变量称为局部变量 由调用函数空间、基本工作空间或其它函数工作空间提供的变量称为全局变量。 在MATLAB中对变量以及全局变量管理提供了以下的命令: 1.global 格式:global X Y Z 功能:将变量 X、Y、Z定义成全局变量。 2Persistent 格式:persistent X Y Z 功能:将变量X、Y、Z定义成永久变量。persistent 函数只用于函数文件中,使在每次 调用时保持变量的值不变。,2.7.3 程序的调试,1.MATLAB的主程序的调试:MATLAB的查错能力很强,加上工作空间中变量的保存和显示功能不需要专门的调试命令,因此,主程序的调试很方便地进行。
13、2.函数程序的调试:因为在函数程序中出错而停机时,其变量不作保存。虽然它也会指出出错的语句,但因为子程序中的变量(局部变量)在程序执行完毕后会自动消失,其它现场数据又无记录,会给调试带来很大困难。可采用下列措施: (1)把某些分号改为逗号,使中间结果能显示在屏幕上,作为查错的依据。 (2)在子程序中适当部位加keyboard命令,到了此处,系统会暂停而等待用户键入命令。这时子程序中的变量还存于工作空间中,可以对它进行检查。 (3)将函数文件的第一行前加“%”号,使它成为程序文件来作初步调试。第一行中的输入变元,可改用input或赋值语句来输入,调试好后再改回为函数文件。 (4)在程序中使用以下
14、人机交互命令,也可大大提高程序的调试程度。,2.4 数据的输入输出及文件的读写,2.4.1 交互输入与输出命令和函数,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文件中,用
15、于停止执行,直接按任意键继续执行; pause(n) 暂停执行n秒后继续执行; pause on 允许一系列pause命令暂停程序执行; pause off 保证任何pause命令和pausea(n)语句不能暂停程序执行。,4显示命令 disp 功能:显示指定的变量或变量的内容。 调用格式: disp(变量名),5按格式要求输出变量命令sprintf 功能:按格式要求输出变量 调用格式: sprintf(显示格式,变量)。,2.4.2 文件输入输出命令与函数,1save 功能:用以将工作空间中的变量保存到磁盘上。 格式一: save 将工作空间中的所有变量保存在一个名为:“matlab.mat
16、”的二进制格式文件中,该文件可通过load命令来重新装入工作空间。 格式二: save 文件名 变量名 将工作空间中指定的“变量名”保存在指定“文件名.mat”的二进制格式文件中。 格式三: save 文件名 选项 使用“选项”指定ASCII文件格式,将工作实间中所有变量保存到“文件名”所指定的文件中。,2. load: 功能:从磁盘文件中重新调入变量内容到工作空间。 格式一: load 将保存在“matlab.mat”文件中的所有变量调入到工作空间。 格式二: load 文件名 从“文件名 . mat”中调入变量,可给出全部路径。 3. fopen 功能:打开文件或获得打开文件信息。 格式一
17、: f_id=fopen(文件名,允许模式),以允许模式指定的模式打开“文件名”所指定的文件,返回文件标识f_id; 允许模式 可以是下列几个字符串之一: r : 打开文件进行读(缺省型式); w : 删除己存在文件中的内容或生成一个新文件,打开进行写操作;a :打开一个己存在的文件或生成并打开一个新文件,进行写操作,在文件末尾添加 数据;,格式二: f_id , message=fopen (文件名,允许模式,格式) 功能:用指定的数据“格式”打开数据文件,返回文件标识和打开文件信息两个参数。 “数据格式”。,如果fopen成功打开文件,则返回文件标识f_id,message内容为空,如果不
18、能成功打开,则返回f_id值为1,message中返回一个有助于判断错误类型的字符串。 有三个值是预先定义的,不能打开或关闭:0:表示标准输入,一直处于打开读入状态。1:表示标准输出,一直处于打开追加状态。2:表示标准错误,一直处于打开追加状态。,4fclose 功能:关闭一个或多个已打开的文件。 格式一: status=fclose(f_id) 关闭指定文件,返回0表示成功,返回-1表示失败。 格式二 status=fclose(all) 功能: 关闭所有文件,返回0表示成功,返回-1表示失败。,5fread 格式一: A, count=fread(f_id, size, 精度) 功能:从指
19、定文件中读入二进制数据,将数据写入到矩阵A中;可选输出count返回成功读入元素个数;f_id为整数文件标识,其值由fopen函数得到;可选参数size确定读入多少数据,如果不指定参数size,则一直读到文件结束为止,参数size合法选择有:n :读入n个元素到一个列向量;inf :读到文件结束,返回一个与文件数据元素相同的列向量;m, n:读入足够元素填充一个mn阶矩阵,填充按列顺序进行,如果文件不够大,则填充0。 精度表示读入数据精度的字符串,控制读入每个值的数据位,这些位可以是整数型、浮点值或字符。,格式二: A, count=fread(f_id, size,精度,skip)可选参数s
20、kip,指定每次读操作跳过字节数,如果精度是某一种位格式,则每次读操作将跳过相应位数。,6fwrite 功能:向文件中写入二进制数据。 格式一: 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,
21、格式,size) 读入由size指定数量的数据,并根据格式字符进行转换,并返回给矩阵A,同时返回成功读入的数据数量count。 8fprintf 格式一: count=fprintf(f_id,格式,A,)将矩阵A或其它矩阵的实部数据以格式字符串指定的形式进行规格化,并将其写入指定的文件中,其返回值为写入数据的数量。 格式二: fprintf(格式,A,)将A或其它值以格式给定的形式输出到标准输出显示屏幕上。,9fgets 功能:以字符串形式返回文件中的下一行内容,包含行结束符。 格式一: ctr=fgets(f_id)返回文件标识为f_id的文件中的下一行内容,如果遇到文件结尾(EOF),则
22、返回-1,所返回的字符串中包括文本结束符,用fgetl( )则返回的字符串中不包括行结束符。 格式二: str=fgest(f_id,n)返回下行中最多n个字符,在遇到行结束符或文件结束(EOF)时不追加字符。10fgetl 功能:以字符串形式返回文件中的下一行内容,但不含行结束符。 格式: str=fgetl(f_id) 返回文件标识为文件中的下一行内容,如果遇到文件结尾,则返回1,所返回的字符串中不包括行结束符。,11ferror 功能:查询MATLAB关于文件输入、输出操作的错误。messgeg=ferror(f_id) 将标识为f_id的已打开文件的错误信息返回给message变量。1
23、2feof 功能:测试文件结尾(EOF)。 格式: eoftest=feof(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 为双精度
24、浮点数,其值在0,1范围内。,14imwrite :将图像写入图像文件中。 格式一: imwrite(A, 文件名,图像文件格式) 格式二: imwrite(A,map,文件名,图像文件格式) 将A中的索引图像及其相关的调色板map存放到指定文件。调色板map必须是MATLAB 的有效调色板。注意大多数图像文件格式不支持大于256条的调色板。,15imfinfo 功能:返回图像文件信息 格式: info=imfinfo(文件名,图像文件格式) 返回一个图像信息结构,或结构数组。图像文件格式与imread函数的一样。,16auread 功能: 读入声音文件(.au) 格式一: Y=auread
25、(aufile) 读入由文件名aufile指定的声音文件,返回采样数据给变量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,
26、 +1范围时,在写入前先进行剪裁处理。 格式二: auwrite(A, Fs, 文件名. au ) 用指定的数据采样Fs(Hz) 写入声音数据。,18wavread 功能: 读入声音文件(.wav) 格式一: A=wavread (文件名.wav) 读入由文件名指定的Microsoft声音文件(. wav),返回采样数据给变量A。如果文件 名中没有扩展名,则自动在其后加上.wav作为扩展名,幅值在-1,1范围内。 格式二: A, Fs, bits=wavread(文件名.wav) 返回采样率Fs(Hz)以及文件中每数据编码时所用的位数(bits)。19wavwrite 功能:向Microsof
27、t WAV声音文件(.wav)中写入声音数据 格式一: wavwrite (A, 文件名.wav) 向指定的文件中写入声音数据,数据在A中以一个通道一列的方式安排,幅值超过 -1, +1范围时,在写入前先进行剪裁处理。 格式二: wavwrite(A, Fs, 文件名.wav) 用指定的数据采样Fs(Hz) 写入声音数据。,2.2.5复数运算,1MATLAB中所有的运算符和函数都对复数有效。,2复数的共轭可利用函数“conj”来完成,2.3 控制流,2.3.1 If语句if语句称为条件执行语句。 其关键字包括if、else、elseif和end。,格式之一:if 表达式 语句组A end 其工
28、作流程如图所示。,注意:语句中的end是决不可少的,没有它,在逻辑表达式为0时,就找不到继续执行程序的入口。,格式之二:if 表达式语句组A else语句组B end 其工作流程如图所示。,格式之三:if 表达式1语句组A elseif 表达式2语句组B else语句组Cend 工作流程原理如图2.3所示。,switch 选择表达式case 情况表达式1语句组1case 情况表达式2语句组2otherwise语句组n end,2.3.2 Switch语句,switch语句,也是条件选择结构。其关键字包括switch、case、otherwise和end。它主 要用于有选择性的程序设计,实现程序
29、的多分支选择。其调格式为:,2.3.3 While语句while语句为条件循环语句,循环执行一组语句,执行次数不确定,而是决定于一些逻辑条件。其关键字包括while、end、break等。 基本调用格式:while 表达式语句Aend,2.3.4 for语句,for语句也是循环语句,但与while语句不同的是,它循环执行一组语句的执行次数是 确定。其关键字包括for、end、break等。调用的基本格式如下:for index=初值:增量:终值语句组Aend 功能:把语句组A(亦称为循环体)反复执行N次。循环次数N为:N1+(终值-初值)/增量 在每次执行时程序中的index的值按“增量”增加
30、。,注意: (1)For循环不能用For循环内重新赋值循环变量n来终止。 (2)在For循环内接受任何有效的MATLAB数组。 (3) for循环可按需要嵌套。与其它的编程语言类似,for语句可以嵌套使用。 (4) 当有一个等效的数组方法来解给定的问题时,应避免用For循环。 (5) 为了提高处理的速度,在For循环(While循环)被执行之前,应预先分配数组。,2.6 基本绘图方法,2.6.1 图形窗口的控制,在MATLAB中,图形的绘制必须在图形窗中进行。通常,只要执行了任意一种绘图命令,图形窗口(Figure)就会自动产生。此时,所生成的图形窗口称为当前图形窗,绘图命令所绘制的图形将在当
31、前图形窗中完成。 1figure命令 格式:figure 或 figure(N) 功能:创建一个图形窗口。使编号为N的图形窗口成为当前图形窗口,即图形窗口处于可视状态。如果窗口N不存在,则将创建一个句柄为N的图形窗口。,2clf命令:清除当前图形窗口中的所有的内容。 格式:clf 3close命令:关闭图形窗口 格式一:close 或 close (N) 关闭当前图形窗口或指定编号N的图形窗口。 格式二:close all 关闭所有图形窗口。,4hold命令 格式:hold on (off) 功能:保持当前图形窗的内容,或取消hold on的命令功能,恢复系统默认状态。通常,MATLAB在执行
32、某一绘图命令时,系统会自动将当前图形窗口中的内容清除,然后再绘制。hold命令的功能就是保持当前图形窗的内容,使后续绘制函数仍可该图形窗口中完成绘图,实现一张图中绘制多个图形。若再键入hold命令就解除冻结。这种拉线开关式的控制有时会造成混乱,可以用hold on和hold off命令来得到确定的状态。5subplot命令 功能:将一个图形窗口划分为多个子图形窗口 格式:subplot(m,n,p) 或 subplot(nmp) 将图形窗口分成nm个子图形窗口,并选择第p个子图形窗口作为当前图形窗口,供绘制函数作图使用。,2.6 基本绘图方法,1. 二维图形绘制命令plot,MATALB为用户
33、提供了一个基本的二维曲线绘图函数plot。 格式一: plot(y)-输入一个数组的情况 功能:如果y是一个数组,函数plot(y)给出线性直角坐标的二维图,该二维图以y中元素的下标作为X坐标,y中元素的值作为Y坐标,一一对应画在XY坐标平面图上,而且将各点以直线相连。若y的元素是复数,则plot(y)等价于plot(real(y),imag(y),其中real(y)是y的实部,imag(y)是y的虚部。若y是矩阵,就按列绘制曲线,曲线的条数等于y矩阵的列数。,格式二: plot(x,y)-输入两个数组的情况 功能:绘出以x元素为横坐标、y元素为纵坐标的曲线。数组x和y必须具有相同长度。,2.
34、6.2 二维图形的绘制,2线型、标记符号及颜色的设置 为了设定线型、颜色以及标记符号,用户只需在plot的输入变量组后面,加一个引号,在引号内部放入线型、颜色以及标记符号的标志符即可完成。 格式一: plot(y,字符串) 格式二:plot(x, y,字符串),3图形的标注、网格以及图例说明(1) 添加图形标题命令title格式:title(string) 功能:在当前坐标系的顶部加一个文本串string,作为该图形的标题。,(2) 添加坐标轴标志函数xlabe、 ylabel、zlabel 格式:xlabel(text) 或 ylabel(text) 或zlabel(text) 功能:给当前
35、X轴或Y轴或Z轴标注文本标注。,(3)设置网格线命令grid 格式:grid on(off) 功能:对当前坐标图加上网格线或撤消网格线。若直接调用grid命令即可设置或撤消 网格线。 (4)图形标注函数legend 格式:legend( string1, string2, string3, .) 功能:在当前图中添加图例。 格式:Legend off 功能:撤消当前坐标图上的图例。,4坐标轴的形式与刻度 (1)设置坐标轴函数axis 格式一:axis(xmin,xmax,ymin,ymax) 功能:对当前二维图形对象的X轴和Y轴进行标定。 格式二:axis(xmin xmax ymin yma
36、x zmin zmax) 功能:对当前三维图形对象的X、Y和Z轴进行标定。 格式三:axis off(on) 功能:使坐标轴、刻度、标注和说明变为不显示(显示)状态。 格式四:axis(manual) 功能:将冻结当前的坐标比例,以后的图形均以此比例绘出。,(2)对数坐标轴命令semilogx、 semilogy、loglog 格式:semilogx() 功能:在X轴上采用常用对数来进行标定。该命令的调用格式与plot函数的调用格式相同。 格式:semilogy() 功能:在Y轴上采用常用对数来进行标定。该命令的调用格式与plot函数的调用格式相同。,(3)极坐标函数polar 格式:pola
37、r(theta, rho) 功能:绘制极角为theta, 极径为rho的极坐标图形。 格式:polar(theta,rho,s) 功能:绘制由S指定样式、颜色的极坐标图形。,(4)图形边框控制命令box 格式:box on(off) 对所绘制的图形添加图形边框(默认状态),或关闭图形边框。,5.二维图形其它的相关函数命令 (1)获取函数ginput 格式:X,Y=ginput(N) 功能:从当前的坐标图上获得N个点的数据,并返回这N个点的相应X、Y坐标向量。 指针可以由鼠标或键盘上的除回车以外的任意键来进行输入,回车键是用来在N个数 据点输完以前强行停止输入的。,(2)图形填充函数fill 格
38、式:fill( X, Y, C) 功能:填充二维多边形,多边形由向量X,Y来定义,填充的色由C来确定。多边形的顶 点是由一组X,Y元素来确定,必要时应组成一个闭合的曲线。C可以从r,g,b,c,m,k 选出一种色填充也可以是一个GRB向量r,g,b,用它来确定所填充的色。,2.6.3 多条曲线的绘制,在MATALB中,通常,在一张图上绘制多条曲线有以下4种方法。 1使用plot(t, y1 ,y2, )命令 该语句中t是向量,y=y1,y2是矩阵,若t是列向量,则y的列(行)长应与t长度相同。 Y的列(行)数就是曲线的条数。,2. 使用hold命令 在画完前一张图形后,用hold命令保持住该图
39、形窗口中的内容,再画下一条曲线。,3. 利用plot(x1, y1, x2, y2, ., xn, yn)语句 在该语句中,x1, y1, x2, y2, ., xn, yn等分别为向量对。每一对X-Y向量可以绘出一条图线,这样就可以在一张图上画出多图线,每一组向量对的长度可以不同,在其后面都可加线型标志符。,4使用plotyy命令: plotyy(x1, y1, x2, y2) 它设有两个坐标,左纵坐标对应y1,右纵坐标对应y2,以便绘制两个y尺度不同 的变量,但x仍用同一个比例尺。,2.6.4 复数的绘图当plot(z)中的z为复数变量时(即含有非零的虚部),MATLAB把复数的实部作为横
40、坐标、虚部作为纵坐标绘图,即相当于plot(real(z),imag(z)。,2.6.5 三维曲线和曲面,1空间曲线绘制函数plot3( ) 格式一:plot3(x,y,z) 功能:若x、y、z为相同长度的向量,则根据向量x、y、z绘制空间三维曲线。如果x、 y、z为同阶矩阵,则绘制对应列的多条曲线。 格式二:plot3(x, y, z, s) 功能:按字符串s设置的线型、颜色、标记符号绘制三维空间曲线。字符串s的设置与 plot命令的设置相同。,2三维网线图函数mesh、meshc和meshz MATALB提供的函数mesh用来绘制三维网线图。 格式一:mesh(X,Y,Z) 功能:根据矩阵
41、X、Y和Z绘制彩色的空间三维网线图。X、Y和Z中对应的元素为三维空间上的点,点与点之间用线连接。其中网线的颜色随着网点高度的改变而改变。 格式二:mesh(x,y,Z) 功能:n维向量x、m维向量y和mn矩阵Z绘制网线图,节点的坐标为(x(j),y(i),Z(i,j),网线的颜色随着网点高度的改变而改变。,3三维曲面图函数surf及surfc格式一:surf(X, Y, Z, C) 功能:绘制由四个矩阵所指定的带色参数的网状表面图。视角是由view所指定。轴的刻度决定于X,Y及Z的范围,或当前对轴的设定;颜色范围由C指定。 格式二:surf(X,Y,Z) 功能:将C设为与Z相等,则颜色与网的高度成正比。,4视图函数view 格式一:view(az, el) 或 view(az,el ) 功能:设置观察者观察三维图形的视角。az是方位角或者是水平旋转角度,el是仰角。 格式二:view(2) 或 view(3) 功能:设置观察三维图形视角的默认值(az=0,el=90; az=-37,el=30) 格式三:az, el=view 功能:返回当前的方位和视角,