




已阅读5页,还剩125页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章:Matlab的基础知识1.1 matlab的基本操作打开matlab软件,则进入以下主界面图1.1 matlab的主界面主界面中间部分是命令窗口(command window),在命令窗口输入语句或程序名然后回车,则系统运行相应的语句或程序。主界面左边是当前用户文件目录(current directory),用户可以点击查看、修改和运行。右上是内存工作区(workspace),记录内存中的变量,用户可以随时点击打开修改。右下是过去命令窗口运行过的命令(command history),用户可以通过双击相应的命令重复运行。 图1.2 主界面的设置主界面可以按照用户的要求进行设置(图1.2)。在主界面下拉菜单file中双击Preference,即可打开Preference窗口,用户可以在窗口中修改系统的设置。在matlab的命令语句中,符号%后的部分是非执行部分,用于语句和程序的说明。如 213+456 %求和几个常用的matlab语句 clc %清屏 clear a b %清除内存中的数据文件a,b clear %清除内存中的所有数据文件 who %显示内存变量 whos %显示内存变量及相关信息1.2 数组的输入Matlab的基本数据是二维数组,数和一维数组是特殊的二维数组。二维数组也可以作为矩阵赋予矩阵运算。在matlab中,二维数组和矩阵作为数据不加区别,我们在后面的章节经常改变它们的称呼。1.2.1 数据的类型和表示数据是构成数组的基本元素。数据有以下不同的形式 在普通运算中,系统默认的是双精度实数。实数有普通表示和指数形两种形式,如10200.754,可以输入为 10200.754ans = 1.0201e+004 1.0200754e+4ans = 1.0201e+004Matlab中的字符串是单引号界定的一组字符。例1.1 输入字符串 This is a string x=This is a stringx =This is a stringMatlab中利用以下的保留字表示特定的常数: pi p inf NaN 非数 i,j 虚数单位 eps 系统所能表示的最小非零实数(单位)1.2.2利用赋值语句输入数组赋值语句的格式为 变量=表达式其中,变量名是英文字母开头的字母、数字、下划线串。特别,将一个数组赋予一个变量的格式为 变量=数组数组由方括号界定,列之间由逗号或空格分隔,行之间由分号或回车分隔。变量区分大小写!例1.2 对数组 以下赋值语句是等效的: A=1,2,3;4,5,6;7,8,9A = 1 2 3 4 5 6 7 8 9 A=1 2 3 4 5 6 7 8 9A = 1 2 3 4 5 6 7 8 9 A=1 2,3;4 5,6 7,8,9A = 1 2 3 4 5 6 7 8 9赋值语句可以选择使用分号、逗号或空格结尾。使用分号结尾的赋值语句,赋值内容不在显示器显示。1.2.3在matlab的workspace窗口输入 图1.3:主界面上的工作区(workspace)图1.3是matlab的主界面。所标示的区域为工作区,显示内存变量的名称和属性。若需要建立新的数组,只需要点击工作区左上角的数组标记(图1.4),工作区中就会出现一个数组符号,双击这个符号即可出现一个数据编辑器(data editor)(图1.5),可以类似Excel在表中编辑数据。当编辑规模较大的数组或需要从其他数据源中拷贝数据时,利用工作区进行编辑要方便得多。 图1.4:工作区左上角的数组标记 图1.5:数据编辑器1.2.4特殊数组Matlab给出了一些数组函数来定义一些数据分布有特殊规律且经常使用的数组,下面是其中最常见的几个。 %mn的全1数组 %mn的全0数组 %mn的单位矩阵 %mn的随机数数组,其中每个元素服从0,1上的平均分布 %mn的随机数数组,其中每个元素服从标准正态分布注1:当m=n时,数组可以用单下表表述。如等同于注2:随机数矩阵是随机产生的,每次调用这一函数产生的随机数矩阵不同。注3:matlab 中的函数、命令的英文词都要小写。例1.3:观察下述语句的运行情况 A=ones(1,10)A = 1 1 1 1 1 1 1 1 1 1 B=eye(2,3)B = 1 0 0 0 1 0 C=zeros(3)C = 0 0 0 0 0 0 0 0 0例1. 4: 生成5阶随机数矩阵,其中的随机数服从的正态分布。 A=2*randn(5)+20 A = 21.0753 17.3846 17.3002 19.5901 21.3430 23.6678 19.1328 26.0698 19.7517 17.5850 15.4823 20.6852 21.4508 22.9794 21.4345 21.7243 27.1568 19.8739 22.8181 23.26051.2.5 生成对角形矩阵的diag语句。函数diag(x)的用法:(1)若x是向量,则返回以x为对角元素的对角阵,是以x为次对角元素的次对角矩阵,依此类推。 (2)若X是矩阵(可以不是正方矩阵),则是X的对角元素组成的向量,是X的次对角元素组成的向量,以此类推。例1.4:输入100阶5对角矩阵 参考程序:x=4*ones(100,1);y=2*ones(99,1);z=ones(98,1);A=diag(x)+diag(y,1)+diag(y,-1)+diag(y,1)+diag(z,2)+diag(z,-2);1.2.6 等距行向量可以利用下面的两种方法建立等距的行向量: %自a开始,间距h,到b结束的等距行向量。 %以a,b为端点的n元素等距行向量。例1.5: 比较下面两个行向量: a=0:2:9a = 0 2 4 6 8 b=linspace(0,9,5)b =0 2.2500 4.5000 6.7500 9.00001.3 数组的操作1.3.1 子数组类似于矩阵代数中子矩阵的定义,matlab中数组A的子数组由A的若干个行、列的交叉点上的元素组成。1234562345673456784567895678910 图1.6 矩阵A的子矩阵示意图在由数组A的第2,4行,第2,4,6列交叉点处元素形成的子数组如图 1.6所示。子数组的matlab描述为 其中U是子数组行的集合,V是子数组列的集合。例如,图1.7所示的子矩阵可以表述为 A1=A(2,4,2,4,6)A1 = 3 5 7 5 7 9和数组A一样,A的子数组也是变量,可以进行数组的各种操作如赋值和运算等。当U和V都是单元素时,A的子数组是A的元素,如A(3,4)等。当U (V)是全部的行(列)时,可以用冒号代替。如 A(2,3,:)ans = 2 3 4 5 6 7 3 4 5 6 7 8注1:子数组的下标是数组,当数组是一维数组时,下标是单下标;当数组是二维数组时,下标可以是双下标,也可以是单下标。对单下标,下标由数组的各列首尾连接排列而成。图1.5是二维数组的单下标和双下标的示意图,其中圆括号中的是双下标,方括号中的是单下标。(1,1)1(1,2)4(1,3)7(1,4)10(2,1)2(2,2)5(2,3)8(2,4)11(3,1)3(3,2)6(3,3)9(3,4)12 图1.7 二维数组单下标和双下标示意图例1.6: 观察下列语句的执行情况 A=1 2 3 4;5 6 7 8;9 10 11 12; A(1 2,2 3)ans = 2 3 6 7 A(1 3 5 7 9)ans = 1 9 6 3 111.3.2数组的拼接与剪切数组可以由子数组拼接而成。注意到matlab语言中基本数据是数组,数只是特殊的数组,因此数组的拼接方式和数组成数组的方式相同:空格或逗号分隔列,分号或回车分隔行。例1.7:按照图1.8表格的拼接方式将4个小数组(不同颜色代表不同数组)拼接成为一个大数组。1234562345673456784567895678910 图1.8 矩阵A的拼接示意图 a=1,2,3,4;2,3,4,5; b=3,4;4,5;5,6; c=5,6;6,7;7,8; d=5,6;6,7;7,8;8,9;9,10; A=a;b,c,dA = 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 10没有元素的数组 称为空数组。给矩阵A的若干个行(列)赋值空数组相当于剪切掉这些行(列)。例如,对上面的数组A作下面操作: A(:,2,4)= A = 1 3 5 6 2 4 6 7 3 5 7 8 4 6 8 9 5 7 9 10字符串本身构成数组。每个字符是它的一个元素。可以对字符串作类似的操作。例1.8 A=This is a book What a nice dayA =This is a book What a nice day A(2,3:7)ans =at a1.3.3矩阵(数组)的转置、旋转、翻转和复制矩阵A的转置用表述。矩阵A的旋转利用函数rot90完成,调用格式为 其中k为正、负整数,指示A旋转。矩阵A的翻转利用函数flipud,fliplr和flipdim 完成。flipud(A)和fliplr(A)分别返回矩阵A的上下翻转和左右翻转,flipdim(A,k)则返回矩阵A沿第k维翻转。例1.9:输入20阶数组 参考语句:A=fliplr(diag(3*ones(1:20)+2*ones(1:19,-1)+ ones(1:19,1);数组的复制利用函数repmat实现,其调用格式为 输出的是以mn个数组A排成的大数组。1.3.4 集合在matlab中,变量可以存放一个数组,也可以存放以数组为元素的集合。集合以花括号限定,元素之间用逗号分隔。例1.10 观察下面语句的运行结果 A=1 2;3,4,This is a book,1:5A = 2x2 double This is a book 1x5 double A2ans =This is a book A1+5ans = 6 7 8 9 length(A)ans = 31.4数组的数值运算数组的运算分为矩阵运算和数组运算两类。1.4.1矩阵运算矩阵运算包括矩阵的加、减、乘、除和乘方。矩阵的加、减和乘法: %矩阵的加法 %矩阵的减法 %矩阵的乘法注1:矩阵的加减法必须是两个相同阶数的矩阵相加减,加减在对应分量之间进行。但matlab允许矩阵和常数相加减,运算定义为矩阵的每一个元素分别和该常数相加减。注2:矩阵的乘法必须满足可乘条件,即第一个矩阵的列数等于第二个矩阵的行数。矩阵的乘法不满足交换律。矩阵的除法:矩阵本身没有除法,因此,在matlab中,矩阵除法是定义乘法的逆运算或近似逆运算。定义规则为:若A可逆,则 相当于,即的解。 相当于 ,即的解。若不可逆,且 是矛盾方程组,则是的最小二乘解。矩阵的乘方: 相当于 由矩阵的乘法规则可以看出,只有正方矩阵才可以做乘方运算。例1. 11 求解方程组 A=4,3,2,1;3,4,3,2;2,3,4,3;1,2,3,4; b=1;2;3;4; x=Abx = 0 0 0 1 A*x %check the solutionans= 1 2 3 4例1.12 给定以下数据点(1.0000 -2.1185) (2.0000 -0.8094) (3.0000 0.4127) (4.0000 1.7913) (5.0000 3.0632)利用线性函数 拟合上述数据。解:将上述数据代入得到方程组 问题归结为求上述方程组的最小二乘解。Matlab实现: y =-2.1185;-0.8094; 0.4127; 1.7913; 3.0632; A=1,1;2,1;3,1;4,1;5,1; a=Aya = 1.2964 -3.4214 A*a-y %check the solutionans = -0.0065 -0.0192 0.0552 -0.0270 -0.0025图1.9 描述了曲线拟合的结果。 图1.9: 曲线拟合结果1.4.2 数组运算数组运算,也称点运算,是同阶数组对应分量的运算。三个二元点运算包括点乘,点除和点乘方,对应的运算符号为 .* ./ . .这些运算符的公共特点是在算符前加上一个英文句号,以便与对应的矩阵运算相区别。例1.13:取 计算 , A=1,2,3;4,5,6; B=1,3,5;2,4,6; X=A.*BX = 1 6 15 8 20 36 Y=A.BY = 1.0000 1.5000 1.6667 0.5000 0.8000 1.0000 Z=A.2Z = 1 4 9 16 25 36注3:matlab没有定义点加减运算,因为矩阵加减运算和数组加减运算是相同的。1.5 数组的关系运算和逻辑运算在matlab中,没有单独的逻辑量。系统利用实数作为逻辑量参与逻辑运算,规定当时为真,时为假。1.5.1 关系运算matlab中定义种元关系运算,对应的运算符为 小于 大于= 大于或等于 = 等于=不等于关系运算是数组运算,运算结果是同阶的0-1矩阵。其中满足关系的为,反之为0。例1.14:对作关系运算。 A=1,2,3;4,5,6; B=3,2,1;4,6,5; A ABans = 0 0 1 0 0 1 A=Bans = 1 0 1 0 1 1例1.15 作下面分段函数的图形参考程序:x=0:0.1:4;R1=x1;f=R1.*x.2+R2.*sqrt(x);plot(x,f)图1.101.5.2 逻辑运算matlab定义以下逻辑运算 非& 与 | 或逻辑运算也是数组运算。例1.16输入一个矩阵,求其中被3整除的正数及其位置 A=-1 5 9 -3 7 6 -2 5 15 8 -6 7 21 -7 -12; B=A=0&mod(A,3)=0B = 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 B.*Aans = 0 0 9 0 0 6 0 0 15 0 0 0 21 0 01.6 数组的下标操作由例1.1.4和例1.1.5知,求给定数组的满足一定条件的子集合,需要确定这样的元素的下标集合。这样的集合可以利用0-1矩阵描述。但是,把这种矩阵中的1所对应的下标集分离出来还需要另外的计算。Matlab中的find函数提供了一个简便的下标操作方法。find函数的调用格式为 其中是矩阵A的关系或逻辑表达式。find 函数则返回满足这一条件的元素的一维下标集合。例1.17 将矩阵A中大于0.5的元素换成0.5。 A=rand(5)A = 0.8147 0.0975 0.1576 0.1419 0.6557 0.9058 0.2785 0.9706 0.4218 0.0357 0.1270 0.5469 0.9572 0.9157 0.8491 0.9134 0.9575 0.4854 0.7922 0.9340 0.6324 0.9649 0.8003 0.9595 0.6787 U=find(A0.5)U = 1 2 4 5 8 9 10 12 13 15 18 19 20 21 23 24 25 A(U)=0.5A = 0.5000 0.0975 0.1576 0.1419 0.5000 0.5000 0.2785 0.5000 0.4218 0.0357 0.1270 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.4854 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.50001.7 矩阵函数和数组函数1.4.1 matlab矩阵函数最常使用的矩阵函数包括行列式函数det、矩阵求逆函数inv和求特征值和特征向量的函数eig。调用格式为 %返回矩阵A的行列式的值 %返回矩阵A的逆矩阵 %返回由矩阵A的全部特征值为元素的向量 %返回特征向量和特征值注1:求解方程组 Ax=b,可以利用矩阵除法Ab 或 inv(A)*b,但前者效率要高一些。例1.18随机做一个5阶方程组,比较Ab 和 inv(A)*b的计算效率。A=rand(5);b=rand(5,1);tic Abtoc ans = 0.5657 -0.4268 1.4837 -0.4399 -0.0966Elapsed time is 0.000321 seconds.tic inv(A)*btocans = 0.5657 -0.4268 1.4837 -0.4399 -0.0966Elapsed time is 0.000173 seconds.注2:在语句中,输出的矩阵X和对角阵R满足 即X的列构成例1.19求矩阵 的特征值和特征向量。 A=4,3,2,5;3,4,3,2;2,3,4,3;5,2,3,4; X,R=eig(A)X = 0.6533 0.2706 0.4483 0.5468 -0.2706 0.6533 -0.5468 0.4483 0.2706 -0.6533 -0.5468 0.4483 -0.6533 -0.2706 0.4483 0.5468R = -1.4142 0 0 0 0 1.4142 0 0 0 0 2.9010 0 0 0 0 13.0990 A*X-X*R %check the resultans = 1.0e-014 * -0.1110 -0.0167 0.1554 0.1776 -0.0999 -0.0222 -0.0222 0.1776 -0.1665 -0.0777 -0.0666 0.0888 -0.0222 0.0167 0 0.08881.8 二维和三维作图Matlab有强大的作图功能,使我们可以把各种计算结果用图形描述出来。Matlab的图形函数分为高层作图和低层作图。高层作图的函数利用低层作图的相关函数,使用简单、方便;而低层作图的函数较多,可以细致地刻画图形和界面,功能强大。本节介绍高层作图的几个常用函数。1.8.1 平面曲线作图平面曲线的作图函数为plot函数,绘图的原理是描点作图,即给定n个数据点的x坐标和y坐标 , 将这n个点利用线段按顺序连接起来构成折线图。其语句格式为plot(x,y) %将x坐标向量x和y坐标向量y给出的n个点用线段按顺序连接起来plot(x,y,S) %利用字符串S设置曲线的颜色、线形和点的形状。Plot(x,S)字符和所设定的颜色、线形和点的形状的对应如下表:颜 色线 型点 型r红色实线p五角星k黑色虚线h六边形b蓝色.点划线xX形g绿色:点线o圆圈y黄色*m洋红.点w白色d菱形例1. 20 作曲线图 其中曲线为红色虚线,数据点采用六边形参考程序:x=0:pi/20:2*pi;y=sin(x).*cos(x).2; %一组数据分别计算用点运算!plot(x,y,r-h)输出图形:图1.11在作图时,系统要打开一个图形窗口,画图和其他处理都在该图形窗口内的某个坐标窗口进行。在matlab中可以同时显示多个坐标窗口,这一功能由函数subplot完成。subplot 函数的调用格式为 该函数将图形窗口分成mn个坐标窗口,并打开第p个窗口供图形操作。例1.21 将图形窗口分成4个坐标窗口,分别绘制函数曲线 ,和正六边形。参考程序:subplot(2,2,1)x=0:pi/20:2*pi;y=sin(x).*cos(x).2;plot(x,y,k-*)subplot(2,2,2)y=exp(x).*sin(x);plot(x,y,b-o)subplot(2,2,3)x1=cos(x);y1=1/sqrt(2)*sin(x);plot(x1,y1,b:.)subplot(2,2,4)axis equalt=0:pi/3:2*pi;x2=cos(t);y2=sin(t);plot(x2,y2,r)axis equal程序运行结果图1.121.8.2 在同一座标窗口绘制多条曲线有多种方法利用plot函数在同一窗口绘制多条曲线方法1:利用hold on语句matlab的作图是面向对象的作图,组成图形的要素如图形窗口、坐标窗口、曲线、文字等,都是独立的对象。对象是有层次的,如坐标窗口在图形窗口内,曲线、曲面在某个坐标窗口内等。按照这一顺序,在绘制一条曲线时,应该首先在显示器上建立一个图形窗口,在图形窗口内的某个区域上建立一个坐标窗口,然后在这一坐标窗口内绘制曲线和曲面。在matlab中,用户可以跳过这一过程直接利用plot等函数绘制曲线、曲面。在这种情况下,系统自动生成预设的图形窗口和坐标窗口。为避免操作混乱,在任何情况下,用户都只能在特定的坐标窗口进行图形操作,如绘制图形,设置文字、色彩等。因此,如果更换坐标窗口,需要规定新的操作窗口。 在matlab高层绘图中,规定两种图形操作状态 hold on 在运行新的绘图函数时,保留当前坐标窗口及其已有图形对象。 hold off 在运行新的绘图函数时,关闭当前坐标窗口。 hold 函数对两种状态进行转换。系统的内置状态为 hold off。例1.22 在同一坐标窗口绘制曲线族 参考程序clearclcx=0:pi/40:2*pi;y=sin(x);plot(x,y)colors=rbgmc;hold onfor k=1:5 y=y.*cos(x); plot(x,y,colors(k)end输出结果图图1.13方法2:当函数plot(x,y,S)中,y是矩阵时,若x的元素个数与y的各列元素个数相同,则x和y的每一列作图。否则,若x的元素个数与y的各行元素个数相同,则x和y的每一行作图。利用这一方法,例1.13也可以利用下述程序实现clearclcx=0:pi/40:2*pi;m=length(x) % 向量长度Y=zeros(6,m)for k=0:5 Y(k+1,:)=sin(x).*cos(x).k;endplot(x,Y)图1.14方法3:可以利用下面的plot函数语句在一个坐标窗口下画多条曲线 1.8.3 曲线的标注常用的曲线标注函数有如下几种 %设置x坐标文字 %设置y坐标文字 %设置标题 %在图形区内标注文字,其中坐标(a,b)为字符串起点 %图形标注例1.23 绘制五边形,九边形,十七边形并标注参考程序clearclct=pi/2:2*pi/5:2*pi+pi/2;x=cos(t);y=sin(t);plot(x,y)hold ont=pi/2:2*pi/9:2*pi+pi/2;x=1.5*cos(t);y=1.5*sin(t);plot(x,y,r)t=pi/2:2*pi/17:2*pi+pi/2;x=2*cos(t);y=2*sin(t);plot(x,y,g)title(多边形)xlabel(x)ylabel(y)legend(五边形,九边形,十七边形)图1.151.8.4 数学函数的简易作图前面给出的作图方法是基于数据的作图。如果给定函数表达式,则可以利用下面的绘图函数画出平面曲线图形。fplot函数: %数值a,b界定绘图区间,字符串S设定曲线颜色和线形例1.24:绘制曲线 fplot(x)(sin(x).2+cos(x),0,2*pi,r-p)ezplot函数: 适用于绘制参数曲线和隐函数确定的曲线。调用格式为 %绘制显函数曲线 %绘制隐函数曲线 %绘制参数曲线例1.25 function ezplotexamplesubplot(2,2,1)ezplot(x)cos(x).3,sin)subplot(2,2,2)ezplot(x,y)(x.4+y.4-1),-1,1,-1,1)subplot(2,2,3)fplot(sin,-pi/2,pi/2,r-)title(fpolt example)subplot(2,2,4)ezplot(t)(t-sin(t),(t)(1-cos(t)end图1.161.5.5 空间曲线作图空间曲线作图的语句是 其中x,y,z是同阶向量,S是字符串,用于设置曲线的颜色、线形和点。plot3的用法完全类似plot,读者可根据plot2的用法作以下总结。例1.26:绘制参数曲线 t=0:pi/50:2*pi;x=sin(t).*cos(t).2;y=cos(t).*sin(t).2;z=t.*(2*pi-t);plot3(x,y,z,k-.)view(9,32)grid on图1.17例1.27 绘制单位球面上的经线和纬线。单位球面上的经线为 类似可得到纬线方程。参考程序:fai=0:pi/20:2*pi;cita=0:pi/10:2*pi;m=length(cita);x=cos(cita)*cos(fai);y=sin(cita)*cos(fai);z=ones(m,1)*sin(fai)subplot(1,2,1)plot3(x,y,z)subplot(1,2,2)plot3(x,y,z)输出结果图1.181.5.6 曲面作图图1.19作图原理:matlab的曲面作图是对参数方程进行的 ,当时,即化为上图中的显式表示。在数值处理中,通过对参数的离散 ,得到自变量的网格剖分。(上图中的x-y平面上的网格)网格节点 是数据点。坐标在网格矩阵上的值构成坐标矩阵。网格点沿着t方向(s=常数)连成的折线和s方向(t=常数)连成的折线织成网线图,按照某种规律在每个网格上涂上不同颜色则构成彩图。形成网线图的函数为 %X,Y,Z依次是网格点的x坐标、y坐标和z坐标矩阵 %向量x,y的笛卡尔乘积构成自变量点阵,S确定色彩彩图为 例1.28 作函数 的网线图和彩图参考程序x=-5:0.2:5;y=x;z=x*y; %z(i,j)=x(i)*y(j)subplot(1,2,1)mesh(x,y,z)subplot(1,2,2)surf(x,y,z)结果图图1.20例1.29 绘制单位球面单位球面的参数方程为 ,参考程序: cita=0:pi/20:2*pi; m=length(cita); fai=0:pi/20:pi; x=cos(cita)*sin(fai); y=sin(cita)*sin(fai); z=repmat(cos(fai),m,1); mesh(x,y,z) axis equal图1.21练习:编程绘制其他二次曲面。Matlab的曲面函数Matlab 提供了两个特殊曲面函数球面函数: %绘制单位球面 %提供单位球面图形数据,但不输出图形参数n是组成球面网线的经线和纬线的条数。例1.30 作椭球面 解:上述曲面可以通过写出参数方程,类似例1.29编程绘制。也可以利用sphere函数得到的数据经过各坐标的拉伸得到。参考程序:x,y,z=sphere(20);mesh(2*x,6*y,3*z)axis equal输出图形:图1.22例1.31 沿经线和纬线切割球面参考程序:subplot(2,2,1)sphereaxis equal subplot(2,2,2)x,y,z=sphere(20);x(1:10,:)=NaN;y(:,1:10)=NaN;mesh(x,y,z)axis equal x,y,z=sphere(20);x(6:12,:)=NaN;subplot(2,2,3)mesh(x,y,z)axis equal x,y,z=sphere(20);y(:,1:6)=NaN;subplot(2,2,4)mesh(x,y,z)axis equal输出图形:图1.23旋转曲面函数: %绘制高度为1的绕z轴旋转曲面 %提供图形数据,但不输出图形其中x是向量。例1.32 绘制原点为(0,0,1/2),半径为1/2的球面。1.9 句柄作图1.9.1 面向对象的作图Matlab的低层作图,也称句柄作图,是面向对象的作图。所谓面向对象,即把组成图形及其界面的要素如线、面、块、坐标、光线、文字和菜单等都作为独立的对象,整个图形由一些对象按一定的层次组合、链接而成。每个对象有自己的属性集合,如一条曲线的属性有颜色、坐标数据、在对象的链接中所在的环节等。对图形的设计可以通过设置各对象的属性完成。在图形中,各个对象不是平等的。它们的关系可以利用下面的树形结构描述:axesfigureuimenurootrectangletextimagelightpatchsurfaceline各个对象的层次关系表现在:低层对象的属性变化时,不影响同层和高层图形对象,而高层图形对象的属性变化时,会影响到它的每一个子孙对象。1.9.2 对象的句柄要使各个对象可以独立操作(如属性的修改等),必须给每个对象一个特有的标识,matlab赋予每个对象一个数字作为标识,称为该对象的句柄。具体的句柄为根对象:0图形对象:正整数 1,2,3,其他对象:实数。由于在matlab中,实数的整个字长无法(也没有必要)在屏幕上显示,因此 需要标识的句柄要存放在内存中。具体的操作是把生成图形句柄的函数赋予某个变量,如 %将plot函数生成的曲线对象的句柄赋予变量h。1.9.3 基本句柄对象函数line对象:用于绘制平面和空间曲线。plot和plot3都是调用line对象作图。区别在于高层函数还做了其他设置如视角、颜色和线型的简化表示等。Line函数生成line对象的命令格式为 h=line(x,y,属性名1,属性值1,属性名2,属性值2,);h=line(x,y,z,属性名1,属性值1,属性名2,属性值2,);例1.33 绘制平面正弦曲线和空间螺旋线参考程序和输出结果:subplot(1,2,1)t=0:pi/20:2*pi;y=sin(t);h=line(t,y,Color,1,0,0,LineWidth,2,LineStyle,-)xlim(0,2*pi)subplot(1,2,2)t=0:pi/20:10*pi;x=cos(t);y=sin(t);z=0.2*t;line(x,y,z,Color,0,1,0,LineWidth,2,LineStyle,:)view(1,22)图1.24surface函数surface 函数生成曲面对象。命令格式为 h=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人与家教合同范本
- 加工定做印刷合同范本
- 项目机器购买合同范本
- 代办管道维修合同范本
- 劳动合同范本 景区
- 种植基地订单合同范本
- 电台广告合同范本
- 混合痔外剥内扎术后护理查房
- 回归热脾区叩击禁忌护理查房
- 内部调岗合同
- 《武汉大学分析化学》课件
- 医学影像学与辅助检查
- 电力工程竣工验收报告
- 《HSK标准教程1》第4课课件
- 双J管健康宣教
- 如何提高美术课堂教学的有效性
- 水电站新ppt课件 第一章 水轮机的类型构造及工作原理
- 护理查对制度课件
- 市政工程占道施工方案
- GB/T 39965-2021节能量前评估计算方法
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
评论
0/150
提交评论