书签 分享 收藏 举报 版权申诉 / 51
上传文档赚钱

类型matlab程序设计基础课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4989144
  • 上传时间:2023-01-31
  • 格式:PPT
  • 页数:51
  • 大小:1.09MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《matlab程序设计基础课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    matlab 程序设计 基础 课件
    资源描述:

    1、matlab程序设计基础程序设计基础 HaiNan University2 HaiNan University3 HaiNan University4 HaiNan University5和其他语言一样,和其他语言一样,MATLAB的程序结构也不外三种:顺序结构、分支结构和循环结构。的程序结构也不外三种:顺序结构、分支结构和循环结构。5、程序结构和流程控制、程序结构和流程控制5.1 顺序结构顺序结构顺序结构即指顺序往下执行的程序语句结构,其实也就是一组复合的表达式。在顺序结构即指顺序往下执行的程序语句结构,其实也就是一组复合的表达式。在MATLAB中,表达式之间可以用分号、逗号或换行来分隔。如

    2、前例的函数文件中,表达式之间可以用分号、逗号或换行来分隔。如前例的函数文件summ.m和命令文件和命令文件use.m均为均为顺序结构。顺序结构。5.2 分支结构分支结构1、MATLAB的分支结构的分支结构 HaiNan University62、分支结构的语句形式及实例、分支结构的语句形式及实例分支结构就是由逻辑判断决定程序执行流转方向的一种结构。现有分支结构就是由逻辑判断决定程序执行流转方向的一种结构。现有if.else.end和和switch.case.end两种形式。两种形式。第一类分支结构采用的语句形式有第一类分支结构采用的语句形式有3种:种:if 表达式表达式 语句组语句组1endi

    3、f 表达式表达式 语句组语句组1else 语句组语句组2endif 表达式表达式 A 语句组语句组1elseif 表达式表达式B 语句组语句组2 else 语句组语句组3end注意:除直接应用上述三种形式外,第注意:除直接应用上述三种形式外,第3 3种结构可扩展,种结构可扩展,if 还可以嵌套。还可以嵌套。HaiNan University7举例:举例:例例5.1 输入数输入数n,判断其奇偶性。,判断其奇偶性。程序式书写法:程序式书写法:*n=input(n=);if rem(n,2)=0 A=even else A=odd end 更完善的程序式书写法:更完善的程序式书写法:n=input(

    4、n=);if isempty(n)=1 A=empty elseif rem(n,2)=0 A=even else A=odd end命令行书写法:命令行书写法:n=input(n=);if isempty(n)=1 A=empty,elseif rem(n,2)=0;A=even,else,A=odd,end HaiNan University8例例5.2 写程序,判断某一年是否闰年写程序,判断某一年是否闰年*。C语言程序:语言程序:main()int year,leap;scanf(“%d”,&year);if(year%4=0)if(year%100=0)if(year%400=0)le

    5、ap=1;else leap=0;else leap=1;else leap=0;if(leap)printf(“%d is”,year);else printf(“%d is not”,year);printf(“a leap year.n”);MATLAB程序:程序:year=input(year=);if rem(year,4)=0 if rem(year,100)=0 if rem(year,400)=0 leap=1;else leap=0;end else leap=1;endelse leap=0;endif leap display(is a leap year)else di

    6、splay(is not a leap year)end HaiNan University9switch 表达式表达式case 值值1语句组语句组1case 值值2语句组语句组2otherwise 语句组语句组n第二类分支结构采用的语句形式如下:第二类分支结构采用的语句形式如下:注意:注意:switch后的表达式的结果值,通常为标量或字符串。后的表达式的结果值,通常为标量或字符串。HaiNan University10举例:举例:例例5.3 用用switch语句改写例语句改写例3.1。程序式书写法:程序式书写法:n=input(n=);switch mod(n,2)*case 1 A=奇奇

    7、case 0 A=偶偶 otherwise A=空空 end HaiNan University11例例5.4 给出一百分制成绩,要求输出成绩等级给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为分以上为A,8089分为分为B,7079分为分为C,6069分为分为D,60分以下为分以下为E。C语言程序:语言程序:main()int score,g;scanf(“%d”,&score);g=score/10;switch(g)case 10:case 9:printf(“An”);break;case 8:printf(“Bn”);break;case 7:printf(“Cn”

    8、);break;case 6:printf(“Dn”);break;default:printf(“En”);MATLAB程序:程序:score=input(score=);g=round(score/10-0.5);if g=10 display(A)else switch g case 9,display(A)case 8,display(B)case 7,display(C)case 6,display(D)otherwise display(E)endend HaiNan University121、MATLAB的循环结构的循环结构 循环结构就是执行重复运算的一段程序。循环结构就是执行

    9、重复运算的一段程序。MATLAB的循环语句有的循环语句有for.end和和while.end两种形两种形式。式。2、循环结构的语句形式及实例、循环结构的语句形式及实例5.3 循环结构循环结构For循环结构的语句形式:循环结构的语句形式:for 变量变量=初值初值:增量增量:终值终值 语句组语句组end 注意:注意:for 还可以嵌套。还可以嵌套。HaiNan University13举例:举例:例例5.5 列出构成列出构成Hilbert矩阵的程序。矩阵的程序。clear,close all format rat,n=input(n=),for i=1:n for j=1:n h(i,j)=1/

    10、(i+j-1);end end h HaiNan University14例例5.6 求求100200间的全部素数间的全部素数*。C语言程序:语言程序:#includemain()int m,k,i,n=0;for(m=101;m=200;m=m+2)k=sqrt(m+1);for(i=2;i=k+1)printf(“%d”,m);n=n+1;MATLAB程序:程序:n=0;x=1:21;for m=101:2:200 k=round(sqrt(m+1)-0.5);for i=2:k if rem(m,i)=0 break,end j=i+1;if j=k+1 n=n+1;x(n)=m;end

    11、 endendx HaiNan University15While循环结构的语句形式:循环结构的语句形式:while 表达式表达式 语句组语句组end注意:注意:while 语句中的表达式通常为关系表达式或逻辑表达式。语句中的表达式通常为关系表达式或逻辑表达式。举例:举例:例例5.7 求如下级数的和:求如下级数的和:1+1/2+1/3+1/4+1/100。s=0;n=1;while n=100 s=s+1/n;n=n+1;end,s HaiNan University16例例5.8 用用/41-1/3+1/5-1/7+公式求公式求的近似值,直到最后一项的绝对值小于的近似值,直到最后一项的绝对值

    12、小于10-6为止。为止。C语言程序:语言程序:#include main()int s;float n,t,pi;t=1,pi=0;n=1.0;s=1;while(fabs(t)1e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf(“pi=%10.6fn”,pi);MATLAB程序:程序:t=1;pi=0;n=1;s=1;while abs(t)1e-6 pi=pi+t;n=n+2;s=-s;t=s/n;endpi=4*pi HaiNan University17匿名函数可以接受多个输入输出参数。创建匿名函数的格式:fhandle=(arglist)expr

    13、其中:“expr”通常是一个简单的MATLAB变量表达式,实现函数的功能;“arglist”是参数列表;“”是MATLAB中创建函数句柄的操作符.匿名函数实例:myfhd1=(x)(x+x.2)myfhd1(2)ans=6myfhd2=(x,y)(sin(x)+cos(y)myfhd2(pi/2,pi/6)ans=1.8660每一个M文件第一行定义的文件就是M文件主函数,一个M文件只能包含一个主函数,通常将M文件名和M文件主函数名设为一致。在一个函数内部可以定义一个或多个函数,这种定义在其他函数内部的函数被成为嵌套函数。嵌套函数的书写语法格式如下:function x=A(p1,p2)func

    14、tion y=B(p3)endend嵌套函数的互相调用需要注意和嵌套的层次密切相关,例:function A(x,y)%外层函数A(例如主函数)B(x,y);D(y);function B(x,y)%A的嵌套函数(B的父函数为A)C(x);D(y);function C(x)%B的嵌套函数(C的父函数为B)D(x);end end HaiNan University18 HaiNan University19 HaiNan University20 HaiNan University21 HaiNan University22 HaiNan University23 HaiNan Univer

    15、sity24 HaiNan University25 HaiNan University26 HaiNan University27 HaiNan University28 HaiNan University29 HaiNan University30 HaiNan University31 HaiNan University32 HaiNan University33 HaiNan University34 HaiNan University35 HaiNan University36 HaiNan University37 HaiNan University38 HaiNan Univer

    16、sity39 HaiNan University40 HaiNan University41实例1 matlab神经网络工具箱 HaiNan University421.1 网络数据对象的建立net=newff(xm,xM,h1,hk,f1,fk);xm,xM分别为列向量(行数为变量个数),分别存储每个变量的最小值和最大值。h1,hk表示网络各层的节点数,一共有k层.f1,fk表示各层使用的传输函数,默认为tansig,即Sigmoid函数。还可使用函数purelin,即f(x)=x。其它可看matlab帮助:help newff HaiNan University431.2 网络数据对象ne

    17、t的属性net.IW:来自输入层的加权矩阵。BP网络只用net.IW1,表示各个输入变量对第1层各节点的加权矩阵。net.LW:来自中间层的加权向量。BP网络用net.IW2,1表示第1隐层个节点向下一层个节点的加权矩阵;net.IW3,2表示第2隐层向下一层的加权矩阵net.b:各层的偏移。Net.b1表示第1隐层个节点的偏移 HaiNan University44net.trainParam.epochs:最大训练步数。不过当误差准则满足时,即使没达到此步数也停止训练。缺省为100。net.trainParam.goad:网络误差准则,当误差小于此准则时停止训练,缺省为0。net.trai

    18、nFcn:训练算法。缺省为 trainlm,即Levenberg-Marquardt算法。还可使用traingdx,即带动量的梯度下降算法;traincgf,即共轭梯度法。其它可看matlab帮助:help-contents-Neural Network Toobox-Network Object Reference;help(net.trainFcn)HaiNan University451.3 网络的训练net,tr,Y1,E=train(net,X,Y);net是函数newff建立的数据对象。X为n*m的矩阵,n为输入变量个数,m为样本数(即把每个样本是一个列向量)。Y为k*m的矩阵,k

    19、为数出变量个数。tr返回训练的跟踪信息,tr.epochs为训练步数,tr.perf为各步目标函数的值。Y1和E返回网络最终的输出和误差。训练结束后可以用plotperf(tr)来绘制目标值随着训练步数变化的曲线。HaiNan University461.4 网络的泛化(预测)Y=sim(net,X);net是函数newff建立的数据对象。X为n*m的矩阵,n为输入变量个数,m为样本数(即把每个样本是一个行向量)。Y为k*m的矩阵,k为数出变量个数。HaiNan University472 例子:神经网络函数拟合(预测)试构造合适的神经网络模型拟合如下数据点,并预测x=10的值:x00.511

    20、.522.533.544.5y00.430.690.740.610.360.08-0.17-0.34-0.4x55.566.577.588.599.5y-0.35-0.23-0.080.060.160.210.20.150.07-0.01 HaiNan University48matlab代码x=0:0.5:9.5;y=0,0.43,0.69,0.74,0.61,0.36,0.08,-0.17,-0.34,-0.4,-0.35,-0.23,-0.08,0.06,0.16,0.21,0.2,0.15,0.07;net=newff(0,9.5,5,1);net.trainParam.epochs=100;net.trainParam.goad=0.000001;net=train(net,x,y);x1=0:0.1:10;y1=sim(net,x1);figure;plot(x,y,.);hold on;plot(x1,y1,r);HaiNan University49 HaiNan University50谢谢!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:matlab程序设计基础课件.ppt
    链接地址:https://www.163wenku.com/p-4989144.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库