MATLAB编程与绘图实验二、MATLAB编程与绘图一、实验目的及要求1.练习MATLAB编程 2.练习MATLAB二维绘图与三维绘图3.撰写实验报告二、实验内容1. MATLAB编程 MATLAB关系运算 MATLAB逻辑运算switch分支选择语句 if条件语句 for循环语句 while循环语句2. MATLAB二维绘图与三维绘图 MATLAB二维绘图plot, subplot, figure MATLAB三维绘图plot3, mesh, surf三、实验MATLAB编程1.MATLAB关系运算:矩阵的比较关系是针对于两个矩阵对应元素的,所以在使用关系运算时,首先应该保证两个矩阵的维数一致或其中一个矩阵为标量比较关系运算是对两个矩阵的对应运算进行比较,若关系满足,则将结果矩阵中该位置元素置为1,否则置0MATLAB的各种比较关系运算如下表:运算符含义运算符含义>大于关系<小于关系==等于关系>=大于或等于关系<=小于或等于关系~=不等于关系2. MATLAB逻辑运算:设矩阵A和B都是M*N矩阵或其中之一为标量,定义如下逻辑运算:(1)与运算:A&B 或 and(A,B)说明:A与B对应元素进行与运算,若两个数均非0,则结果元素的值为1,否则为0。
2)或运算:A|B 或 or(A,B)说明:A与B对应元素进行或运算,若两个数均为0,则结果的值为0,否则为13)非运算:~A 或 not(A)说明:若A的元素为0,则结果元素为1,否则为04)异或运算:xor(A,B)说明:A与B对应元素进行异或运算,若相应的两个数中一个为0,一个为非0,则结果为1,否则为03.switch分支选择语句: 指令格式 含义switch exprcase value-1 (commands)case value-2 (commands)case value-k (commandsk)otherwise (commands)endl expr为根据此前给定变量进行计算的表达式l value-1是给定的数值、字符串标量(或胞元数组)l 若expr结果与value-1(或其中的胞元元数)相等,则执行l value-k是给定的数值、字符串标量(或胞元数组)l 若expr结果与value-k相等,则执行l 该情况是以上的“并”的“补”l 若所有case都不发生,则执行该组命令4.if条件语句: 单分支 双分支 多分支if expr (commands)endif expr(commands1)else(commands2)emdif expr1(commands)elseif expr2 (commands) ……else (commandsk)end当expr给出“逻辑1”时,(command)指令组才被执行当expr给出“逻辑1”时,(commands1)指令组被执行;否则,(commands2)被执行expr1,expr,…中,首先给出“逻辑1”的那个分支的指令组被执行;否则,(commandsk)被执行。
该使用方法常被switch-case所取代5.for循环语句6.while循环语句 for循环 while循环for ix=array(commands)endwhile expression (commands)end变量ix为循环变量,而for与end之间的commands指令组为循环体ix依次取array中的元素;每取一个元素,就运行循环体中commands指令组一次,直到ix大于array的最后一个元素跳出该循环为止for循环的次数是确定的当碰到while指令时,首先检测expression的值,如其值为逻辑真(非0),则执行组命令当执行完毕,继续检测表达式的值,若表达式值仍为真,循环执行组命令;而一旦表达式值为假时,结束循环while循环的次数是不确定的MATLAB二维绘图与三维绘图MATLAB二维绘图plot, subplot, figureplot功能:性坐标系中绘制二维图形,该函数调用格式为:1.plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制曲线当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线。
例如:用plot(x)命令画直线,如图1所示>>x1=[123]>> plot(x1) 图12.plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线例如:绘制正弦曲线y=sin(x),如图2所示>> x1=0:0.1:2*pi;>> y1=sin(x1); >> plot(x1,y1) 图23.plot(x,y,linespec) 该命令加入了linespec 参数,用于对图形外观属性的控制,包括线条的形状、颜色、和点的形状、颜色y 黄色 . 点 k 黑色 o 圆 w 白色 x x b 蓝色 + + g 绿色 * * r 红色 - 实线 c 亮青色 : 点线 m 锰紫色 -. 点虚线 -- 虚线 例如:绘制正态分布红色虚线,如图3所示>> x=[-3:0.2:3];>> y=1/sqrt(2*pi)*exp(-1/2*x.^2);>> plot(x,y,'r--') 图3subplot命令功能:将一个图形窗口划分为多个区域,每个区域一幅子图。
例如:用subplot命令画四个子图,如图4所示>> x=0:0.1:2*pi;>> subplot(2,2,1) >> plot(x,sin(x))>> subplot(2,2,2) >> plot(x,cos(x))>> subplot(2,2,3) >> plot(x,sin(3*x))>> subplot(224) >> plot(x,cos(3*x)) 图4figure产生新图形窗口说明:如果该窗口不存在,则产生新图形窗口并设置为当前图形窗口,该窗口名为“Figure No.n”,而不关闭其它窗口例如,可以使用“figure (1)”、“figure (2)”等语句来同时打开多个图形窗口如下图5、 图6>> x=0:pi/90:3*pi;y1=sin(2*x);plot(x,y1);figure(2);y2=exp(-1.5*x).*sin(2*x);plot(x,y2,':');figure(1);xlabel('x'),ylabel('y');figure(2);>> xlabel('x'),ylabel('y'); 图5 图62.MATLAB三维绘图plot3, mesh, surfplot3功能:用来绘制三维曲线,使用格式与二维绘图的plot命令相似。
例如:利用plot3 绘制图7>> x=0:pi/60:8*pi;>> y=sin(x);>> z=cos(x);>> plot3(x,y,z);>> xlabel('x'),ylabel('y'),zlabel('z');>> grid 图7mash功能:用以绘制三维网格图;surf 功能:用以绘制三维表面图;例如下图抛物曲面的网格图和表面图X= -1:0.1:1;>> Y=X';>> X1=X.^2;>> Y1=Y.^2;>> x=ones(3,1);>> x=ones(length(X),1);>> y=ones(1,length(Y));>> X1=x*X1;>> Y1=Y1*y;>> Z=X1+Y1;>> subplot(1,2,1),mesh(X,Y,Z);subplot(1,2,2),surf(X,Y,Z); 抛物曲面的网格图和表面图。