单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,FDTD中的MATlAB编程根底,一、系统预定义变量,pi,:,圆周率,,其值为,imag(log(-1),inf,,,Inf,:,无穷大,nan,,,NaN,:,Not-a-,Number,一个不定值,如,0/0,eps,:,浮点运算相对精度,i,,,j,:,虚部单位,即,应尽量避开给系统预定义变量重新赋值!,Matlab,中的数默认是,双精度实数,,表示方法,同,C,语言,3,-9,0.4,1.603e-12,3.23e+20,浮点运算的,相对误差为,eps,浮点数表示范围为,:,10,-308,10,308,输出格式,Matlab 以双精度执行全部的运算,运算结果可以在屏幕上输出,同时赋给指定变量;假设无指定变量,则系统会自动将结果赋给变量“ans”,Matlab,中数的输出格式可以通过,format,命令指定,format 只转变变量的输出格式,,但不会影响变量的值!,各种 format 格式,格式,解释,例,format,短格式(缺省显示格式),同short,3.1416,format short,短格式(缺省显示格式),只显示5位,3.1416,format long,长格式,双精度数15位,单精度数7位,3.14159265358979,format short e,短格式e方式(科学计数格式),3.1416e+000,format long e,长格式e方式,3.141592653589793e+000,format short g,短格式g方式,3.1416,format long g,长格式g方式,3.14159265358979,format compact,压缩格式,format loose,自由格式,format+/format bank /format rat/format hex (详情查看联机帮助),二、变量的读取,去除当前工作空间中的变量,clear 去除当前工作空间中的全部变量,clear A x 去除指定的变量,将数据文件中的变量载入当前工作空间,load,mydata,载入数据文件中的所有变量,load,mydata,A x,从数据文件中提取指定变量,三、建立矩阵的函数,常用函数有:,eye(size(A)产生与A矩阵同阶的单位矩阵,zeros(m,n)产生0矩阵,ones(m,n)产生幺矩阵,rand(m,n)产生随机元素的矩阵,Size(a)返回包含两个元素的向量。,Length(a)返回向量的长度。,常见矩阵生成函数,zeros,(m,n),生成一个,m,行,n,列的零矩阵,,m=n,时可简写为 zeros(,n,),ones,(m,n),生成一个,m,行,n,列的元素全为 1 的矩阵,m,=,n,时可写为 ones(,n,),eye,(m,n),生成一个主对角线全为 1 的,m,行,n,列矩阵,m=n,时可简写为 eye(,n,),即为,n,维单位矩阵,diag,(X),若 X 是矩阵,则 diag(X)为 X 的主对角线向量,若 X 是向量,diag(X)产生以 X 为主对角线的对角矩阵,tril,(A),提取一个矩阵的下三角部分,triu,(A),提取一个矩阵的上三角部分,rand,(m,n),产生 01 间均匀分布的随机矩阵,m,=,n,时简写为 rand(,n,),randn,(m,n),产生均值为0,方差为1的标准正态分布随机矩阵,m,=,n,时简写为 randn(,n,),其它特殊矩阵生成函数:,magic,、,hilb,、,pascal,可利用冒号提取矩阵 的整行或整列。,例:,A(1,:),A(:,1:3),A(:,:),四、常用命令,1.input函数:用于向计算机输入一个参数。,调用格式:A=input(提示信息,选项);,注:s选项,则允许用户输入一个字符串。,例如想输入一个人的姓名,可承受命令,xm=input(”What”s your name:”,”s”),【例2】求一元二次方程a2+bx+c=0的根。,a=input(”a=?”);,b=input(”b=?”);,c=input(”c=?”);,d=b*b-4*a*c;,x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a),将该程序以aa.m文件存盘,然后运行aa.m文件。,2 pause函数:暂停程序的执行。,调用格式:pause(延迟秒数),注:假设省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序连续执行。,3.Drawnow函数:将还未处理完的图像实时的显示出来。当代码执行时间长,需要反复执行plot时,Matlab程序不会马上把图像画到figure上,这时,要想实时看到图像的每一步变化状况,需要使用这个语句。,Matlab图形可视化的几个命令,1.几个根本的绘图命令,a.线性坐标曲线 plot,函数命令 plot 是 MATLAB 二维曲线绘图中最简洁、最重要、使用最广泛的一个线性绘图函数。它可以生成线段、曲线和参数方程曲线的函数图形。,命令格式:,plot(X,Y),plot(x1,y1,x2,y2,):综合调用方式,A、二维平面图形与坐标系,用命令,plot(x,y,),绘制函数,y=cos(x),在两个周期内的图形。,x=0:0.01:2*pi;,y=cos(x);,plot(x,y),在同一图形窗口中,用命令,plot(x,y,),绘出正弦余弦函数的图形。,x=0:0.01:2*pi;,y=sin(x);cos(x);,plot(x,y),调用格式:plot(x,y,s),s 为类型说明参数,是字符串。,s 字符串可以是三种类型的符号之一,也可以是线型与颜色和定点标记与颜色的组合;,假设没有 s 参数,plot 将使用缺省设置实线,前七种颜色挨次着色绘制曲线;,在当前坐标系中绘图时,每调入一次绘图函数,MATLAB将擦掉坐标系中已有的图形对象。可以用 hold on 命令在一个坐标系中增加新的图形对象。留意MATLAB会依据新图形的大小,重新转变坐标系的比例。,用不同的线型和标注来绘制两条曲线。,t1=0:0.1:2*pi;,t2=0:0.1:6;,y1=sin(t1);,y2=sqrt(t2);,plot(t1,y1,”:hb”,t2,y2,”-g”),线型和颜色,plot,函数可以设置曲线的,线段类型、定点标记和线段颜色,。,常用的线段、颜色与定点标记参数,二维函数曲线专用命令 fplot,用plot绘图在确定自变量的取值间隔时,一般承受平均间隔,有时会因某处 间距太大,而不能反映出函数的变化状况。fplot是绘制函数 y=f(x)图形的专用命令,它的数据点是自适应产生的,对那些导数变化较大的函数,用 fplot 函数绘出的曲线比等分取点所画出的曲线更加接近真实。,fplot 函数命令的调用格式为:,X,Y=fplot(fun,lims,fun:函数名字符串;,lims:定义 x 的取值区间,lims=xmin,xmax;,二维函数曲线专用命令 ezplot,2.图形窗口的分割,有时需要在一个图形窗口中显示几幅图,以便对几个函数进展直观、便捷的比较。由于每个绘图命令在绘制数据图像时都会将已有图形掩盖掉,而用 hold 命令不能实现同时显示几个不同坐标尺寸下的图形,用 figure 命令再创窗口又很难同时比较由不同的数据绘得的图像。,实现在同一个窗口中同时显示多个图像的命令subplot。,使用格式为:,subplot(m,n,i),其含义为 :把图形窗口分割为 m 行 n 列子窗口,然后选定第 i 个窗口为当前窗口。,subplot 命令不仅用于二维图形,对三维图形一样适用。其本质是将 figure 窗口分为几个区域,再在每个区域内分别绘图。,用,subplot 函数,把两种不同的图形综合在一个图形窗口中。,subplot(2,2,1),t=0.1:0.1:2*pi;,y=sin(t);,semilogx(t,y),grid on,subplot(2,2,2),t=0:0.1:4*pi;,y=sin(t);,plot(t,y),subplot(2,2,3),x=1:0.01:5;,y=exp(x);,plotyy(x,y,x,y,semilogx,plot),subplot(2,2,4),x=1:0.1:10;,y=sqrt(x);,plot(x,y,:rd),3.坐标轴的调整,实现坐标系的调整的命令是 axis 函数。,调用格式为:axis(xmin,xmax,ymin,ymax,zmin,zmax),坐标的最小值 xmin,ymin,zmin必需小于相应的最大值 xmax,ymax,zmax,否则会出错。,自动坐标系与用 axis 函数调整后的坐标系的比较。,subplot(2,1,1),t=0:0.1:4*pi;,y=sin(t);,plot(t,y),subplot(2,1,2),t=0:0.1:4*pi;,y=sin(t);,plot(t,y),axis(0,max(t),min(y),max(y),1.,三维,曲线,绘图命令,三维函数,plot3,主要用来表现,单参数的三维曲线,,与二维绘图函数,plot 相比,只多了,第三维数据,。,其调用格式为:,plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,),参数的含义如下:,Xn、Yn、Zn,:,第一到三维数据,是,尺寸相等的,向量,/,矩阵;,s、s1、s2:,是,字符串,,用来设置,线型、颜色、数据点,标记。,B、三维绘图,x、y、z 是向量时,plot3 命令的使用,t=0:0.1:8*pi;,plot3(sin(t),cos(t),t),title(绘制螺旋线)%用命令 title 对图形主题进展标注,xlabel(sin(t),FontWeight,bold,FontAngle,italic),ylabel(cos(t),FontWeight,bold,FontAngle,italic),zlabel(t,FontWeight,bold,FontAngle,italic),%命令 zlabel 用来指定 z 轴的数据名称,grid on,a.三维网格命令 mesh,利用函数mesh生成网格曲面。,调用格式为:,mesh(X,Y,Z,C):X、Y、Z、C 是同维数的矩阵,X、Y、Z 对应空间上的网格点,网格线颜色由C准备;,mesh(X,Y,Z):相当于上面的 C=Z 的状况;,mesh(x,y,Z,C):x 和 y 是向量,Z 和 C 是同维数的矩阵,网格曲面的网格顶点是 x(j),y(i),Z(i,j),网格线的颜色由矩阵 C 准备;,mesh(x,y,Z):相当于上面的 C=Z 的状况;,mesh(Z,C):等价于 mesh(x,y,Z,C),此时向量x=1:n,向量 y=1:m;,mesh(Z):相当于上面的 C=Z 的状况,mesh(.,PropertyName,PropertyValue,.):给函mesh设置曲面属性。,2.三维曲面绘图命令,用,mesh 命令绘制上例中的网格曲面。,X,Y=meshgrid(-2:.2:2,-2:.2:2);,Z=X.*exp(-X.2-Y.2);,mesh(Z),与 mesh 相关的另外两个函数是 meshc 和 meshz,它们的调用形式与 mesh 一样。,c.三维外表命令 surf,函数 surf 可实现对网格曲面片进展着色,将网格曲面转化为实曲面。surf 命令的调用格式与 mesh 一样。,利用三维网特别表命令 surf 绘制图形。,z=peaks;%绘制山峰的图像,将函数值赐予变量z,surf(z)%对山峰的图像进展着色处理,shading interp%函数 shading 转变着色方式,3.等高线图形的绘制,4.三维视图可视效果的把握,5.柱面和球面的三维表达(书),图形标注,坐标轴和图形标