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

类型matlab函数及脚本文件入门课件.ppt

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

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

    特殊限制:

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

    关 键  词:
    matlab 函数 脚本 文件 入门 课件
    资源描述:

    1、3.1 M文件建立文件建立3.2 脚本文件脚本文件3.3 函数文件函数文件3.4 程序控制结构程序控制结构3.5 程序调试程序调试-1.M 文件文件 Matlab 命令组合构成,完成操作和算法 M文件分类 扩展名为:3.1 M文件建立文件建立-(1)新建M 文件2.2.M M文件建立和打开文件建立和打开 u 命令操作:u 命令按钮:M 文件编辑器(2)打开M 文件u 菜单操作:表格或空白文件 函数文件-(2).windows记事本和记事本和word-3.matlab搜索路径的设置搜索路径的设置显示路径:显示路径:设定当前目录:设定当前目录:设定搜索路径:设定搜索路径:set path (add

    2、 folder)删除删除rmpath(folder path)-4.显示显示M文件内容文件内容调用格式:调用格式:edit which aaaaaaaa not found.cd C:UsersDesktopmatlab addpath(C:UsersDesktopmatlab)edit aaaatype aaaa type aaaa.mqq=22;bb=444;dd=qq+bb;在命令窗口显示-%fcircle calculate the area and perimeter of a circle of radii r%r 圆半径%s 圆面积%p 圆周长%2004年年7月月30日编日编r=

    3、22;s=pi*r*r p=2*pi*r 1.编脚本文件求半径为编脚本文件求半径为r的圆的面积和周长的圆的面积和周长H1注释行注释行函数体函数体帮助文本区帮助文本区 3.2 脚本文件脚本文件 由于help搜索例例例例-p 运行后所有变量驻留在基本工作空间(运行后所有变量驻留在基本工作空间(base workspace)p 文件变量名不要和计算机命令、函数、文件名相同。文件变量名不要和计算机命令、函数、文件名相同。whos Name Size Bytes Class Attributes p 1x1 8 double r 1x1 8 double s 1x1 8 double rsp2.调用脚本

    4、文件调用脚本文件rps*34-特点特点 一串命令行简单叠加的集合;自动按顺序执行文件的命令;无输入和输出量;所有变量都驻留在基本工作空间中;所有变量均为。v,d=eig(a)-从键盘输入数据给变量AA=input(Please input A:)name=input(Whats your name?,s)Please input A:33输入字符串变量:输入字符串变量:输入数值:输入数值:name=lili-clear;r=input(Please input radii:);s=pi*r*r;p=2*pi*r;dddPlease input radii:33s=3.4212e+003p=20

    5、7.3451例例例例-:a=input(input example)input example1+4a=5 ischar(a)ans=0 b=input(input examplen,ss)input example1+4b=1+4 ischar(b)ans=1n是换行-数据输出:x=1:2:5;xx=1 3 5 disp(x)x=1 3 5例例例例-disp(the x value is)disp(x)disp(the x value is:,)the x value is:1 3 5the x value is 1 3 5-function s,p=fci(r)s=pi*r*r;p=2*p

    6、i*r;endr=input(r=);s=pi*r*r;p=2*pi*r;sp=s,pdisp(s=,num2str(sp(1),p=,num2str(sp(2)例例例例 编脚本文件求半径为编脚本文件求半径为r的圆的面积和周长的圆的面积和周长-输入x,y值,并将它们值互换后输出。例例例例x=input(Input x please.);y=input(Input y please.);z=x;x=y;y=z;disp(x);disp(y);-指定数据输出的格式%d 整数%e 实数:科学计算法形式%f 实数:小数形式%g 由系统自动选取上述两种格式之一%s 输出字符串:文件句柄,若缺省,则输出到

    7、屏幕A是用来存放数据的矩阵指定格式将变量的值输出到屏幕或指定文件-创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。a=string;fid=fopen(d:char1.txt,w);fprintf(fid,%s,a);fclose(fid);fid1=fopen(d:char1.txt,rt);b=fscanf(fid1,%s)例例例例 b=3fprintf(there are%f,b)there are 3.000000-3.3.1 函数文件函数文件 3.3.2 全局变量和全局变量和局部变量局部变量3.3.3 子函数与主函数子函数与主函数3.3.4 函数句柄和匿名函数函数句柄和匿名函数-

    8、function s,p=fcircle(r)%FCIRCLE calculate the area and perimeter of a circle of radii r%r 圆半径%s 圆面积%p 圆周长%2004年年7月月30日编日编s=pi*r*r;p=2*pi*r;end 编函数文件求半径为编函数文件求半径为r的圆的面积和周长的圆的面积和周长函数定义行函数定义行H1注释行注释行函数体函数体帮助文本区帮助文本区 3.3.1 函数文件函数文件 例例例例-1.函数文件的格式:函数文件的格式:H1行行 用一行文字来综述函数的功能帮助区注释说明语句段function output_args=

    9、Untitled(input_args)%UNTITLED5 Summary of this function goes here%Detailed explanation goes here end-u第一行引导词;u起函数名要有含义,与一致,即u列出函数与外界交换数据的u输入/输出量数目不限,可有可无;u输出多个变量,应用方括号-s,p=fcircle(22)s=1.5205e+03p=138.2301 s=fcircle(22)s=1.5205e+03 fcircle(22)ans=1.5205e+03function ffcircle(r)s=pi*r*r;p=2*pi*r;endfu

    10、nction s=ffcircle(r)s=pi*r*r;p=2*pi*r;end-nargin(函数名函数名)nargout(函数名函数名)输入个数输入个数输出个数输出个数r=roots(c)nargin(roots)nargout(roots)ans=-1输入个数不确定,输入个数不确定,显示负值显示负值nargin(plot)-Jacobi迭代法的迭代法的MATLAB函数文件函数文件Jacobi.m如下:如下:functionif nargin=3 eps=1.0e-6;elseif nargin=eps x0=x;x=B*x0+f;n=n+1;end nargin(jaco)ans=4

    11、nargout(jaco)ans=2-u 文件第二行,是帮助文本的第一行;u%开头注释行,字符不被matlab执行;u 大写体的文件名大写体的文件名和运用关键词简要描述的函数功能;u 在线帮助使用;lookfor只H1行查询关键词。u H1行后%的注释行组成;u 详细说明函数功能,如输入/输出量总数和调用格式说明u Help function_name显示所有的%的注释行。-lookfor fcirclefcircle -calculate the area and perimeter of a circle of radii rhelp fcircleFCIRCLE calculate th

    12、e area and perimeter of a circle of radii r r 圆半径圆半径 s 圆面积圆面积 p 圆周长圆周长 2004年年7月月30日编日编显示注释:显示注释:help 文件名文件名lookfor fcircle-函数体函数体n 实现函数文件功能的指令组成;n 接受输入量、程序结构控制,创建输出量。注释注释n%开头注释行;n 函数文件任意位置,绿色表示;n 对语句注释说明。-2 函数调用函数调用输出变量输出变量=函数名函数名(输入变量输入变量)调用格式调用格式:rr=234rr=234 x,y=ff(rr)x=1.7202e+005y=1.4703e+003 w

    13、hosName Size Bytes Class rr 1x1 8 double x 1x1 8 double y 1x1 8 double function s,p=fcircle(r)ff(2,3)*34 whos Name Size Bytes Class ans 1x1 8 double clear ff(333)ans=3.4837e+005-函数调用特点函数调用特点 开辟临时函数工作空间()存放中间变量;运行完毕,中间变量被清除以及临时空间关闭;函数调用必与函数定义行同名同名;实参数的顺序、个数应与形参数一致,否则出错。-运行后只,不保留function s,p=fcircle(r

    14、)s=pi*r*r;p=2*pi*r;endfunctionif nargin=3 eps=1.0e-6;elseif nargin=eps x0=x;x=B*x0+f;n=n+1;end A=10,-1,0;-1,10,-2;0,-2,10;b=9,7,6;xx,nn=jaco(A,b,0,0,0,1.0e-6)xx,nn=jaco(10,-1,0;-1,10,-2;0,-2,10,9,7,6,0;0;0)xx=0.9958 0.9579 0.7916nn=11-2023-1-132function abcd(a,b)c=a+bd=sin(c)e=log(d)保存为abcd.m在工作窗口中调

    15、用:a=2;b=3,4,5,6;a=2;b=3;c=a+b;d=sin(c);e=log(d);保存为:abcd.m在工作窗口中调用:abcd%文件名即可function e=abcdef(a,b)c=a+bd=sin(c)e=log(d)保存为abcd.m在工作窗口中调用:a=2;b=3,4,5,6;ee=例例例例程序中变量均为-脚本式M文件函数式M文件无函数定义行;有函数定义行;无输入和输出量,也不一定要返回结果。可有输入和输出变量,并有返回结果;在base workspace中数据操作,运行后变量驻留其中;中间变量存在临时工作空间,它随函数结束而删除;全局变量。局部变量,除特别声明。脚本

    16、文件和函数文件的区别脚本文件和函数文件的区别-所有变量驻留在基本工作空间中,即全程有效全程有效;所有函数都可对其进行存取和修改;定义全局变量是函数之间传递信息的手段。-仅在函数工作空间中间变量中间变量,影响仅限于函数本身;函数文件变量不能直接访问workspace中的全局变量,它只能读取通过参数传入的变量;函数文件中定义的变量不能被另一个函数文件引用;如果在若干函数中,把某个变量定义为全局变量,那么这些函数可以共用这个变量。-2023-1-136function avgs=test4(A)global S SS%定义全局变量m,n=size(A);for i=1:m s(i)=sum(A(i,

    17、:)endss=sum(s)avgs=ss/(m*n)end调用调用test4:A=4 3 5;6 7 8;3 5 7;1 3 4;test4(A)ans=4.6667 global S SS ssss=56 ss=12 21 15 8注意:变量之间以空格分隔,而不能用逗号分隔。注意:变量之间以空格分隔,而不能用逗号分隔。global 变量名变量名调用格式:调用格式:例例例例一般大写字母一般大写字母-2023-1-137u 一个M文件可含多个函数,第一个主函数主函数,其它子函数子函数;u主函数必须在最前面,子函数次序可随意调整;u子函数仅被主函数或同一文件其它子函数所调用;是主函数的一种,只在

    18、限定函数群可见,一般放在private命名子目录中。它只对父目录中函数可见。-function c=test(a,b)%主函数c=test1(a,b)*test2(a,b);endfunction c=test1(a,b)%子函数1c=a+b;endfunction c=test2(a,b)%子函数2c=a-b;end例例例例-主函数和子函数function =homework%problem 1x=-3:3;disp(problem 1)disp(the squares of the input values are listed below)y=square(x);disp(y)%prob

    19、lem 2r1=0.5;r2=0.25;disp(problem 2)disp(the cold work is)cold_work(r1,r2)%problem 3m=1,2,3;g=9.8;dz=5;disp(problem 3)disp(the change in potential energy is)potential_energy(m,g,dz)function result=square(x)result=x.2;function result=cold_work(r1,r2)result=(r1.2-r2.2)/r1.2;function result=potential_en

    20、ergy(m,g,dz)result=m.*g.*dz;例例例例-两种创建句柄:两种创建句柄:class(hd)ans=function_handlehfun=str2func(fun)hfun=fun携带函数路径的函数,反复调用方便,像变量调用。1.函数句柄函数句柄:hfun=+函数名函数名 hfun=str2func(fun)function fv=fun(x)fv=x-10.x+2;end-函数句柄调用:函数句柄调用:y1,y2,.=feval(fhandle,x1,.,xn)feval(hfun,3)ans=46.0977y1,y2,.=hfun(x1,.,xn)直接调用:直接调用:h

    21、fun(3)ans=46.0977间接调用间接调用:调用函数文件一样调用函数文件一样执行由串指定的函数-2.匿名函数匿名函数 以符号开头;expression为函数体;xlist为输入参数列表 f=(xlist)expression 简单形式,不要求M文件,在命令窗口或者M文件中定义。只含表达式、任意多输入和输出变量。特点:特点:格式:格式:ff=(x)sin(x)ff(2)feval(ff,2)yyy=(x)sin(x).*log(x)-3.4程程序序控控制制结结构构-if 语句语句switch 语句语句条件结构条件结构:根据给定条件成立与否,执行不同语句。条件结构的语句条件结构的语句:-(

    22、1)单分支结构if expression(条件表达式:条件表达式:关系和逻辑关系和逻辑)statements(语句组语句组A)endif expression(条件)条件)statements1(语句组语句组A)statements2(语句组语句组B)end(2)双分支结构双分支结构-x=input(请输入请输入x的值的值:);if x=90 result=A;elseif x=80result=B;elseif x=70result=C;elseif x=60result=D;elseresult=E;end-A=input(A=);B=input(B=);if AB greaterelse

    23、if A=90 result=A;elseif x=80result=B;elseif x=70result=C;elseif x=60result=D;elseresult=E;endfunction result=grade(per)k=floor(per/10)switch kcase 9,10result=A;case 8result=B;case 7result=C;case 6result=D;otherwiseresult=E;end-per=input(输入成绩)k=floor(per/10)switch kcase 9,10disp(A)case 8disp(B)case 7

    24、disp(C)case 6disp(D)otherwisedisp(E)end第二种方法-循环结构循环结构:按照给定的条件,重复执行指定的语句。循环结构的语句循环结构的语句:3.4.2 循环结构循环结构-for variable=expression(循环变量循环变量)statement(循环体)循环体)endfor for 循环变量循环变量=初始值初始值:步长步长:终止值终止值 循环体语句循环体语句endend=-y=0;n=100;for k=1:n y=y+1/(2*k-1);endy当 n=100 时,求 y 的值n=100;i=1:2:2*n-1x=1./iy=sum(x)y无循环无

    25、循环采用循环语句会降低其执采用循环语句会降低其执行速度,所以程序通常由行速度,所以程序通常由下面的程序来代替:下面的程序来代替:n=100;y=sum(1./(1:2:2*n-1);y例例例例-for m=100:999m1=fix(m/100);%求求m的百位数字的百位数字m2=rem(fix(m/10),10);%求求m的十位数字的十位数字m3=rem(m,10);%求求m的个位数字的个位数字if m=m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。例例例例Fix向零取证向零取证R

    26、em除法求余除法求余-function H=hilbn(n)for i=1:n for j=n:-1:1 H(i,j)=1/(i+j-1);endendH建立Hilbter函数2.循环的嵌套循环的嵌套function H=myhilb(n)for i=1:n for j=1:n H(i,j)=1/(i+j-1);endend1(,)1A i jij例例例例-x=zeros(1,10);for n=1:10 x(n)=sin(n*pi/10);endx例例-x=rand(1,50000);%随机投币随机投币50000次次sum=0;k1=0;a=zeros(1,50000);b=zeros(1,

    27、50000);%赋予初始赋予初始值占位,值占位,for(i=1:50000)sum=sum+1;%投币次数累计值投币次数累计值if x(i)0.5%投币正面概率投币正面概率 0.5 k1=k1+1;%投币正面次数累计值投币正面次数累计值enda(i)=k1;%投币正面次数累计值投币正面次数累计值b(i)=sum;%投币次数累计值投币次数累计值endf1=a./b;%正面概率figure(1)plot(b,f1),title(出现正面的频率变化曲线)figure(2)plot(b,1-f1),title(出现反面的频率变化曲线)k1%正面次数,k2=sum-k1%反面次数f1=k1/sum%正面

    28、频率,f2=1-f1%反反面频率例例投掷硬币实验投掷硬币实验-3.while 循环循环while expression(条件条件)statement(循环体)循环体)endn=0;while s=2n;n=n+1;end sn求n为多少时,2n100,其值多少例例例例-2023-1-164u for适用已知到循环次数循环次数,而不知循环运算目标;u while适用已知循环运算目标循环运算目标,而循环次数未知;u为了提高代码的运行效率,避免 for 循环的使用;4.4.for和和while循环语句区别循环语句区别-2023-1-165 计算级数计算级数:S=1+2+22+23+263=6302n

    29、ns=0;s=0;i=0;i=0;i64i 0 sum mean=sum/cntend例例例例-try 语句组1catch 语句组2end lasterr%显示出错原因3.4.3 tr3.4.3 try-catch语句语句Try检测程序代码是否出错;先试探语句组1,如出现错误,则将错误信息赋给lasterr保留;并转去执行语句组2。语句格式语句格式-矩阵乘法运算要求两矩阵维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。A=1,2,3;4,5,6;B=7,8,9;10,11,12;try C=A*B;catch C=A.*B;endClasterr%显示出错原因例例例例

    30、-程序设计常遇到提前终止循环、跳出子程序、显示出错信息等情况,主要有等。-1.break 和和 continuelbreak和和continue与循环结构与循环结构for 和和while相关语句,相关语句,它们一般与它们一般与if配合使用。配合使用。lbreak 终止循环,即跳出最内层循环;lcontinue结束本次循环,进行下次循环.-求求100,1000之间第一个能被之间第一个能被21整除的整数整除的整数。for n=100:1000if rem(n,21)=0 continueendbreakendn例例例例Rem除法求余除法求余-停止运行,控制权给键盘,命令窗口“”变成“K”;。对程序

    31、调试和程序运行中修改都很方便。function abcdek(a,b)c=a+b;keyboardd=a*be=a/bendfunction abcdef(a,b)c=a+b;d=a*breturne=a/b*dabcdek(4,2)K a=2a=2K returnd=4e=1例例例例输入return后,控制权将交回文件function abcde(a,b)c=a+b;d=a*be=a/bend-程序的暂停程序的暂停 pause pause 或或 pause(npause(n)若想强行终止程序的运行,可以使用若想强行终止程序的运行,可以使用 Ctrl+cCtrl+cp n n 是延迟时间,以秒

    32、为单位;是延迟时间,以秒为单位;p 缺省,将暂停程序,直到用户按任意键后继续缺省,将暂停程序,直到用户按任意键后继续l pause off pause off 屏蔽程序中所有 pause 的作用l pause on pause on 打开 pause 的作用-function abcdp(a,b)c=a+bd=sin(c)pausee=log(d)function abcd(a,b)c=a+bd=sin(c)e=log(d)abcd(3,4)c=7d=0.6570任意键任意键e=-0.4201例例例例-5.echo在命令窗口显示执行过程的在命令窗口显示执行过程的M文件的命令文件的命令-echo

    33、 on edfor n=100:1000if rem(n,21)=0 continueif rem(n,21)=0 continueif rem(n,21)=0 continueif rem(n,21)=0 continueif rem(n,21)=0 continueif rem(n,21)=0endbreakendnn=105 echo abcd on abcd(3,4)c=a+b;d=sin(c);e=log(d)e=-0.4201function abcd(a,b)c=a+bd=sin(c)e=log(d)for n=100:1000if rem(n,21)=0 continueend

    34、breakendn保存为ed例例例例-function abcd(a,b)c=a+bd=sin(c)cce=log(d)abcd(3,4)c=7d=0.6570?Undefined function or variable cc.Error in=abcd at 4cc显示指定的出错信息并终止当前程序运行Error(message)类似warning,区别warning显示指定警告还运行例例例例-3.5 程序调试程序调试M文件错误种类:文件错误种类:函数参数输入类型,括号,矩阵运算:运行过程中死机或溢出,与程序本身有关。M文件设计应避免情况文件设计应避免情况:Inf,nan或空矩阵可能异常地方

    35、提供识别语句,识别语句:识别语句:isinf,innan,isempty-利用它来指定程序代码的断点,使利用它来指定程序代码的断点,使得程序在断点前停止执行,并进入得程序在断点前停止执行,并进入调试模式,从而可以检查当前各个调试模式,从而可以检查当前各个变量的值变量的值。-文件名为mfile的M文件的第一个可执行语句第一个可执行语句前设置断点。mfile的M文件的第lineno行设置断点。如果第lineno行为非执行语句,则在其后的第一个可执行语句前设置断点。mfile的M文件子程序subfun第一个执行语句前设置断点。-遇到错误时,自动设置断点。不包括trycatch之间的错误。遇到错误时,

    36、自动设置断点。包括trycatch之间的错误。遇到警告时,自动设置断点 trycatch间代码遇到错误时,自动设置断点。当程序运行遇到无穷值或者非数值无穷值或者非数值时,自动设置断点。-显示行号的M文件文本显示断点信息继续执行 到程序结束,或者下个断点将从断点处继续执行M文件清除断点退出调试状态其它调用函数其它调用函数-function y=t(x)l=length(x);y=1:l+x使用命令调试程序:使用命令调试程序:-在命令窗口输入dbstop in function8,打开function8.m,可见在第一个可执行语句前设置断点。-单击图中红点,会发现红点被取消,此时回复到初始状态。然后在命令窗口依次输入dbstop if error和test(magic(3),可得到如下的运行结果和如下图所示的界面。-

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

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


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


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

    163文库