MATLAB编程与作

上传人:xu****iu 文档编号:244900888 上传时间:2024-10-06 格式:PPT 页数:47 大小:274.50KB
返回 下载 相关 举报
MATLAB编程与作_第1页
第1页 / 共47页
MATLAB编程与作_第2页
第2页 / 共47页
MATLAB编程与作_第3页
第3页 / 共47页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数学实验,MATLAB编程与作图,数据的输出格式,MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。,数据输出时用户可以用format命令设置或改变数据输出格式。format命令的格式为:format 格式符,注意,format命令只影响在屏幕上的显示数据输出格式,而不影响数据的计算和存储,MATLAB的数据存储和运算总是以双精度进行的。,可用菜单File/Preferences中的Command Window 里的Numarical Format来设定数据显示方式,有short(小数点后4位),long(15位数字),bank(小数点后2位),short e(5位科学计数法),long e(15位科学计数法),rat(最接近的有理数).,也可在Command Window中用命令设置,例如:,format long,format short :5位定点格式,如 1.4142,format long :15位定点格式,如,format short e :5位浮点,如1.4142e+000,format long e :15位浮点,如,format short g:5位定点或浮点取优,如1.4142,format long g:15位定点或浮点取优,如,format hex :十六进制数,如3ff6a09e667f3bcd,format bank:货币格式,如1.41,format rat :分数之比,如1393/985,format+:若为正数则显示+,若为负数则显示-,若为0则显示空,如,format short%设置定点格式,显示5位,pi,ans=,3.1416,format long%设置定点格式,显示15位,pi,ans=,3.14159265358979,关系与逻辑运算,1.关系操作符,2,.,逻辑运算符,MATLAB流程控制,循环语句 for,while,条件转移 if end,if elseif else end,开关语句 switch case,注释语句%,中断语句 break,暂停语句 pause,回显语句 echo on/off,选择结构,1.if语句,在MATLAB中,if语句有3种格式。,1.单分支if语句,语句格式为:,if 条件,语句组,end,当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。,2.双分支if语句,语句格式为:,if 条件,语句组1,else,语句组2,end,当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。,例1.,计算分段函数值,程序如下:,x=input(,请输入x的值,:);,if,x=10,y=cos(x+1)+sqrt(x*x+1);,else,y=x*sqrt(x+sqrt(x);,end,y,请输入x的值:,y=,47.1893,12,1.m,3.多分支if语句,语句格式为:,if 条件1,语句组1,else if 条件2,语句组2,else if 条件m,语句组m,else,语句组m+1,end,例2.,输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。,c=input(请输入一个字符,s);,if c=A&c=a&c=0&c*,Inner matrix dimensions must agree.,循环结构,1.for语句,基本格式,for 循环变量起始值:步长:终止值,循环体,end,步长缺省值为1,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。,for i=1:5,for j=1:5,a(i,j)=1/(i+j-1);,end,end,a=,1.0000 0.5000 0.3333 0.2500 0.2000,0.5000 0.3333 0.2500 0.2000 0.1667,0.3333 0.2500 0.2000 0.1667 0.1429,0.2500 0.2000 0.1667 0.1429 0.1250,0.2000 0.1667 0.1429 0.1250 0.1111,例5.,已知求y的表达式,,当n=100时,求y的值。,在实际MATLAB编程中,为提高程序的执行速度,常用向量运算来代替循环操作:,n=100;i=1:n;,f=1./i.2;,y=sum(f),程序如下:,y=0;n=100;,for i=1:n,y=y+1/i/i;,end,y,y=,2047/1252,for语句更一般的格式:,for 循环变量=矩阵表达式,循环体语句,end,执行过程是依次将矩阵的各,列,元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。实际上,“表达式1:表达式2:表达式3”是一个仅为一行的矩阵(行向量),因而列向量是单个数据。,例6.已知5个学生4门功课的成绩,求每名学生的总成绩。,程序如下:,try.m,s=0;,a=,65,76,56,78,;98,83,74,85,;,76,67,78,79,;,98,58,42,73,;67,89,76,87,for k=a,s=s+k;,end,disp(s);,a=,65 76 56 78,98 83 74 85,76 67 78 79,98 58 42 73,67 89 76 87,275 340 300 271 319,2.while语句,while语句一般用于不能事先确定循环次数的情况 while语句的一般格式为:,while(条件),循环体语句,end,其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环(如图3.5所示)。,While,循环和,for,循环的区别在于,,while,循环结构的循环体被执行的次数不是确定的,而,for,结构中循环体的执行次数是确定的。,例7.用循环求解,例8.用循环求解,最小的,m,例9.用while循环语句编写一个计算1000以内的Fibonacci数:,5.m,f=1 1;,i=1;,while f(i)+f(i+1)1000,f(i+2)=f(i)+f(i+1);,i=i+1;,end,f=,1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987,例10.,产生一个长度为的调和数列。,程序如下:,X=zeros(1,6);,i=1;,while i=6,X(i)=1/i;,i=i+1;,end,format rat%使用分数表示数值,disp(X),Columns 1 through 5,1 1/2 1/3 1/4 1/5,Column 6,1/6,与循环结构相关的还有一个break语句,当在循环体内执行到该语句时,程序将跳出循环。该语句一般与if语句配合使用。,例11.,用while语句实现例5。,6.m,程序如下:,y=0;i=1;,while 1,f=1/i/i;,y=y+f;,if i=100,break;,end,i=i+1;,end,y,3.循环的嵌套,如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。,在设计多重循环时,要特别注意内、外循环之间的关系,以及各语句放置的位置,不要搞错。,例12.,用筛选法求某自然数范围内的全部素数。,程序如下:,m=input(m=);,p=2:m;,for i=2:sqrt(m),n=find(rem(p,i)=0,p(n)=;,end,p,m=100,p=,Columns 1 through 5,2 3 5 7 11,Columns 6 through 10,13 17 19 23 29,Columns 11 through 15,31 37 41 43 47,Columns 16 through 20,53 59 61 67 71,Columns 21 through 25,73 79 83 89 97,7.m,小结:MATLAB程序的基本组成结构,说明,清除命令:,清除workspace中的变量和图形(clear,close),定义变量:,包括全局变量的声明及参数值的设定,逐行执行命令:,指MATLAB提供的运算指令或工具箱,提供的专用命令,控制循环:,包含for,if then,switch,while等语句,逐行执行命令,end,绘图命令:,将运算结果绘制出来,当然更复杂程序还需要调用子程序,或与simulink以及其他应用程序结合起来。,MATLAB作图,二维图形,三维图形,图形处理,实例,特殊二、三维图形,MATLAB提供多种图形功能,使你的数据或函数可视化,使数据不再是枯燥乏味的。使用MATLAB的图形函数,可以绘制二维或三维的数据图形和函数图形,如数据的散点图、直方图、茎干图、饼图、阶梯图和面积图等。使数据可视化的基本步骤是:,1.准备好数据;,2.选择适用的绘制图形函数;,3.选择窗口和位置;,4.编辑图形标注和说明;,5.输出或保存图形。,MATLAB提供了丰富的绘图功能,help graph2d,可得到所有画二维图形的命令,help graph3d,可得到所有画三维图形的命令,MATLAB作图是通过描点、连线来实现的,故在画一个曲线图形之前,必须先取得该图形上的一系列的点的坐标(即横坐标和纵坐标),然后将该点集的坐标传给MATLAB函数画图.,命令为:,plot(X,Y,S),plot,(X,Y),画实线,plot,(X,Y1,S1,X,Y2,S2,X,Yn,Sn),将多条线画在一起,X,Y是向量,分别表示点集的横坐标和纵坐标,线型,y,黄色,.,点,-,连线,m,洋红,o,圈,:,短虚线,c,蓝绿色,x x-,符号,-.,长短线,r,红色,+,加号,-,长虚线,1.曲线图,例,在0,2 用红线画sin,x,用绿圈画cos,x,.,x=linspace(0,2*pi,30);,y=sin(x);,z=cos(x);,plot(x,y,r,x,z,g0),解,MATLAB liti1,2.,符号函数(显函数、隐函数和参数方程)画图,(1),ezplot,ezplot(x(t),y(t),tmin,tmax),表示在区间tminttmax绘制参数方程 x=x(t),y=y(t)的函数图.,ezplot(f(x),a,b),表示在axb绘制显函数f=f(x)的函数图.,ezplot(f(x,y),xmin,xmax,ymin,ymax),表示在区间xminxxmax和 yminyymax绘制,隐函数f(x,y)=0的函数图.,例,在0,上画,y,=cos,x,的图形.,解,输入命令,ezplot(sin(x),0,pi),MATLAB liti25,解,输入命令,ezplot(cos(t)3,sin(t)3,0.2*pi),MATLAB liti41,解,输入命令,ezplot(exp(x)+sin(x*y),-2,0.5,0,2),MATLAB liti40,(2),fplot,注意:,1 fun必须是M文件的函数名或是独立变量为x的字符串.,2 fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形.,fplot(fun,lims),表示绘制字符串fun指定的函数在lims=xmin,xmax的图形.,解,先建M文件,myfun1.m:,function Y=myfun1(x),Y=exp(2*x)+sin(3*x.2),再输入命令:,fplot(myfun1,-1,2),MATLAB liti43,MATLAB liti28,解,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!