资源描述
七、关系与逻辑运算符,MATLAB的运算符有三种类型:算术运算符、关系运算符、逻辑运算符。 它们的处理顺序依次为算术运算符、关系运算符、逻辑运算符。在前面我们已经介绍了算术运算符,这里我们着重介绍后两种运算符。,关系与逻辑运算符,假设有:A=1 2 -1 -5 B=0 2 3 1 大于 AB ans=1 0 0 0 A1 ans=0 1 0 0 = 大于等于 A=B ans=1 1 0 0 = 等于 A=B ans=0 1 0 0 ; A=1 ans=1 0 0 0 = 不等于 A=B ans=1 0 1 1 ; A=1 ans=0 1 1 1,关系运算符,1、关系运算符,2、逻辑运算符,注意:在处理逻辑运算时,运算元只有两个值即0和1,所以如果指定的数为0,MATLAB认为其为0,而任何数不等于0,则认为是1。,假设有:A=5 -4 0 -0.5 B=0 1 0 9 & 与 A&B=0 1 0 1 A&1=1 1 0 1 | 或 A|B=1 1 0 1 A|1=1 1 1 1 非 A=0 0 1 0 1=0,逻辑运算符,八、程序流程控制,1、for循环语句 格式: 例子: exp2_11.m,for语句,for 循环变量起始值:步长:终止值 循环体 end,sum=0; for i=1:100 sum=sum+i; end,While循环和for循环的区别 while循环结构的循环体被执行的次数不是确定的,而for结构中循环体的执行次数是确定的。,while语句,2、while循环语句,while 表达式 循环体 end,格式,例 exp2_12.m,sum=0; j=0; while sum100 j=j+1; sum=sum+j; end,while语句,if 逻辑表达式 执行语句1 else 执行语句2 end,if 逻辑表达式 执行语句 end,3、if,else,elseif语句,格式,if 逻辑表达式1 执行语句1 elseif 逻辑表达式2 执行语句2 . end,if语句,x=input(please input x=); if x=1 y=10 elseif x-1&x1 y=0 else y=-10 end,例 exp2_13_.m,switch 表达式(可以是标量或字符串) case 值1 语句1 case 值2 语句2 . otherwise 语句3 end,4、switch语句,格式,switch语句,例 exp2_14.m,t=-pi:0.1:pi; trigname=input(Input trig functions name:) switch trigname case sin plot(t,sin(t) case cos plot(t,cos(t) otherwise break end,switch语句,第三节、绘图简介,MATLAB提供了丰富的绘图功能 help graph2d可得到所有画二维图形的命令 help graph3d可得到所有画三维图形的命令 下面介绍常用的二维图形命令,绘图简介,1、plot(x1,y1,option1,x2,y2,option2,),基本的绘图命令,x1: x轴坐标值 y1: y轴坐标值 Option1:为选项参数,用单引号标出,Plot指令,例 exp2_3.m exp2_3_.m,t=0:pi/20:8*pi; y=sin(t); plot(t,y,r:*),r 表示线的颜色为红色,y(黄色)g(绿色)b(蓝色) : 表示线型为虚线,-(实线):(虚线)(破折线). * 表示标示符号为星号,此外 +(正号)o(圆形字母),2、figure:选择图像 figure(1);figure(2);figure(n) 打开不同的图形窗口,以便绘制不同的图形。,3、grid on:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格,4、hold on:把当前图形保持在屏幕上不变,同时 允许在这个坐标内绘制另外一个图形。 hold off:使新图覆盖旧的图形,其他画图指令,例 exp2_4.m exp2_4_.m,t=0:pi/20:9*pi; figure(1) plot(t,sin(t),r:*) grid on grid off figure(2) plot(t,cos(t) grid on grid off,其他画图指令,5、设定轴的范围 axis(xmin xmax ymin ymax) axis(equal):将x坐标轴和y坐标轴的单位刻度大小调整为一样。,axis指令,例 exp2_5.m,t=0:0.01:2*pi; x=sin(t); y=cos(t); plot(x,y) axis(-1.5 1.5 -1.5 1.5),6、文字标示 text(x,y,字符串): 在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。 输入特殊的文字需要用反斜杠()开头。 gtext(字符串) 利用鼠标在图形的某一位置标示字符串。 title(字符串) 在所画图形的最上端显示说明该图形标题的字符串。 xlabel(字符串),ylabel(字符串) 设置x,y坐标轴的名称。 legend(字符串1,字符串,字符串n) 在屏幕上开启一个小视窗,然后依据绘图命令的先后用对应 的字符串区分图形上的线。,文字标示,例 exp2_5_.m,t=0:pi/20:5*pi; plot(t,sin(t),r:*) xlabel(t(deg) ylabel(magnitude) title(sine wave from zero to 5pi) text(pi/2,sin(pi/2),bullet leftarrow The sin(t) at t=2) legend(sin(t),cos(t) gtext(文字标示命令举例),文字标示,7、subplot(mnk):分割图形显示窗口 m:上下分割个数,n:左右分割个数,k:子图编号,t=0:pi/20:5*pi; figure(1) subplot(121) plot(t,sin(t) grid on subplot(122) plot(t,-sin(t) grid on,例 exp2_6.m,Subplot指令,8、semilogx:绘制以x轴为对数坐标(以10为底),y轴 为线性坐标的半对数坐标图形。 semilogy:绘制以y轴为对数坐标(以10为底),x轴 为线性坐标的半对数坐标图形。,例 exp2_17.m,x=0:0.1:1; y=10.x; semilogy(x,y),Semilog指令,可用于数值统计分析或离散数据处理 bax(x,y); hist(y,x); stairs(x,y); stem(x,y);,应用型绘图指令,9、了解应用型绘图指令:,subplot(221) x=1 2 3 4 5 6 7 8 9 10; y=5 6 3 4 8 1 10 3 5 6; bar(x,y),例 exp2_7.m,subplot(222) x1=randn(1,1000); y1=-3:0.1:3; hist(x1,y1),应用型绘图指令,subplot(223) x2=0:0.1:10; y2=1./(x2.3-2.*x2+4); stairs(x2,y2),subplot(224) x3=0:0.1:10; y3=1./(x2.3-2.*x2+4); stem(x3,y3),(续),应用型绘图指令,10、一点补充说明,对于图形的属性编辑同样可以通过在图形窗口上直接进行。 但图形窗口关闭之后编辑结果不会保存,一点补充说明,第四节 MATLAB程序设计入门,一、MATLBA程序的基本设计原则,后面的内容是程序的注解,要善于运用注解使程序更 具可读性。 养成在主程序开头用clear指令清除变量的习惯,以消除 工作空间中其他变量对程序运行的影响。但注意在子程 序中不要用clear。 参数值要集中放在程序的开始部分,以便维护。要充分 利用MATLAB工具箱提供的指令来执行所要进行的运 算,在语句行之后输入分号使其及中间结果不在屏幕上 显示,以提高执行速度。,input指令可以用来输入一些临时的数据;而对于 大量参数,则通过建立一个存储参数的子程序,在 主程序中用子程序的名称来调用。 程序尽量模块化,也就是采用主程序调用子程序 的方法,将所有子程序合并在一起来执行全部的 操作。 充分利用Debugger来进行程序的调试(设置断点、 单步执行、连续执行),并利用其他工具箱或图形 用户界面(GUI)的设计技巧,将设计结果集成到 一起。 设置好MATLAB的工作路径,以便程序运行。,MATLAB程序设计入门,MATLAB程序的基本组成结构 说明 清除命令:清除workspace中的变量和图形(clear,close) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB或工具箱提供的运算指令 控制循环 包含for,if then,switch,while等语句 逐行执行命令 end 绘图命令:将运算结果绘制出来,MATLAB程序的基本组成结构,MATLAB程序的基本组成结构,function power=test() a=-5:5; power=zeros(1,11); for i=1:11 power(i)=a(i)2; end plot(a,power,r:*);,例 test.m,二、M文件的编辑及MATLAB工作路径的设置,进入MATLAB的ditor/Debugger窗口来编辑程序 在编辑环境中,文字的不同颜色显示表明文字 的不同属性。 绿色:注解; 黑色:程序主体; 红色:属性值的设定; 蓝色:控制流程。,M文件的编辑,在运行程序之前,必须设置好MATLAB的工作路 径,使得所要运行的程序及运行程序所需要的其 他文件处在当前目录之下,只有这样,才可以使 程序得以正常运行。否则可能导致无法读取某些 系统文件或数据,从而程序无法执行。 通过cd指令在命令窗口中可以更改、显示当前工 作路径。 通过路径浏览器(path browser)也可以进行设置,MATLAB工作路径的设置,三、MATLAB的程序类型,脚本M文件 在命令窗口中输入并执行 它所用的变量都要在工作空间中获取,程序文件 以.m格式进行存取程序 运行时只需在工作空间中键入其名称即可,函数文件 例myhilb1.m myhilb.m,MATLAB的程序类型,四、声明子程序(函数程序)变量,子程序与主程序之间的数据是通过参数进行传递的,子程序应用主程序传递来的参数进行计算后,将结果返回主程序。 例 exp2_9.m 如果一个函数内的变量没有特别声明,那么这个变量只在函数内部使用,即为局部变量。全局变量可以用global来声明。 例 exp2_10.m,子程序变量,掌握MATLAB语言的基本知识 掌握矩阵的基本运算及操作 掌握基本的二维绘图命令。 掌握三种基本的M文件类型 善于运用help命令自学。,总结,总结,参考书目:,1.现代通信系统使用MATLAB。约翰 G 谱罗克斯,马苏德 萨勒赫,刘树棠译。西安交通大学出版社。 2. MATLAB与通信仿真。王立宁,乐光新,赞菲 。人民邮电出版社。 3.精通MATLAB 5。张宜华。清华大学出版社。,参考书目,谢谢!,
展开阅读全文