第三章M文件设计.ppt

上传人:sccc 文档编号:5294573 上传时间:2023-06-23 格式:PPT 页数:22 大小:230.52KB
返回 下载 相关 举报
第三章M文件设计.ppt_第1页
第1页 / 共22页
第三章M文件设计.ppt_第2页
第2页 / 共22页
第三章M文件设计.ppt_第3页
第3页 / 共22页
第三章M文件设计.ppt_第4页
第4页 / 共22页
第三章M文件设计.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第三章M文件设计.ppt》由会员分享,可在线阅读,更多相关《第三章M文件设计.ppt(22页珍藏版)》请在三一办公上搜索。

1、第三章 M文件设计,命令文件(脚本式)变量、表达式、运算符程序设计中的流程控制函数文件的编写,命令文件(脚本式M文件)无输入参数,不返回参数 操作工作空间中的数据 对于需要多次执行的一系列命令特别有用函数文件(函数式M文件)可输入参数,也可返回参数 函数的变量为局部变量,也可设外部变量。扩充MATLAB的函数库,M文件分为命令文件和函数文件两种,需要几行(或几十行)命令才能完成的作业,最好用程序编辑器编写命令文件。对文件命名,保存在当前工作目录中.,命令文件MATLAB的命令序列,k=0;n=1;f=1;an=1;s=1;while an0.00002 f=-f;n=n+2;an=1/n;s=

2、s+f*an;k=k+1;endP=4*s,变量创建常用赋值语句实现 变量名=数据 theta=3.14/4%将数据赋值给变量名注意:变量名必须是英文字母打头;表达式由变量、运算符、函数、数字组成表达式创建常用赋值方法实现 变量名=表达式theta=pi/4x=sin(theta);P=1+2*x+3*x2+4*x3,MATLAB的变量和表达式,局部变量:具有函数内部作用范围全局变量:可在几个函数和基本工作空间之间共享,具有全局作用范围全局变量的声明:global 变量名1 变量名2,局部变量和全局变量,永久变量 ans;eps;pi;i;j;inf;NaN;,+加.+点加-减.-点减 矩阵幂

3、.点幂*乘.*点乘/右除./点右除 左除.点左除,1.算术运算符,2.关系运算符 大于=大于等于=等于=不等于,3.逻辑运算符&与(and)|或(or)非(not),MATLAB 程序中的流程控制,条件控制;循环控制;错误控制;终止运行控制,条件控制有选择地运行程序块1.if/elseif 语句分析下列程序,说明运行结果及原因 clear a=100;b=10;if ab)%显示字符串ab end,2.Switch/case 语句,clearn=input(input n=);switch mod(n,5)case 0 fprintf(%d 是5的倍数,n)otherwise fprintf(

4、%d 不是5的倍数,n)end,程序运行:input n=4444 不是5的倍数,1.for循环语法:for 变量=初值:步长:终值 可执行语句 end,求裴波拉奇数列的第 n 项(n 2)n=input(input n:=);f(1)=1;f(2)=1;for k=3:n f(k)=f(k-1)+f(k-2);endf(n),n:=10,f(10)=55n:=44,f(44)=701408733,2.while循环 while循环将循环体中的语句循环执行不定次数。语法:while 条件表达式 循环体语句 end,条件表达式一般由变量、数字、逻辑运算、关系运算符和一般运算符组成,以判断循环的进

5、行和停止;只要表达式的值(逻辑值)结果为正确(非0),循环继续;直到表达式值为0,循环停止。,角谷猜想.,n=input(input n=);%输入数据while n=1 r=rem(n,2);%求n/2的余数 if r=0 n=n/2%第一种操作 else n=3*n+1%第二种操作 endend,对任一自然数n,按如下法则进行运算:若n为偶数,则将n除2;若n为奇数,则将n乘3加1。将运算结果按上面法则继续运算,重复若干次后计算结果最终是1.,n=5 16,8,4,2,1,3.continue 命令,通常用于for或while循环语句中,与if语句一起使用,达到跳过本次循环,去执行下一轮循

6、环的目的分析下列程序,说明运行结果及原因a=3;b=6;for i=1:3 b=b+1;if i2 continue%当if条件满足时不再执行后面语句 end a=a+2%当i2时不执行该语句end,运行结果:a=5a=7,4.break命令,通常用于for或while循环语句中,与if语句一起使用,中止本次循环,跳出最内层循环分析下列程序,说明运行结果及原因a=3;b=6;for i=1:3 b=b+1;if i2 break%当if条件满足时不再执行循环 end a=a+2end,运行结果:a=5a=7,程序流控制语句 return指令 终止当前的命令序列,把控制返回到调用函数或键盘。pa

7、use 使程序运行停止,等待用户按任意键继续。break 用于中断for或while循环的执行。当中断后,程序退到本级循环以外的下一条语句执行。input 提示用户从键盘输入数值、字符串或表达式,并接受输入。,函数文件编写,函数文件名必须以英文字母开头,并以.m 为后缀,如f1.m、f2.m、g1.m、g2.m、,function 返回变量列表函数名(输入变量列表)%注解说明 输入变量nargin格式检测,输出变量 nargout检测 函数体,注意:函数名应该和文件名相同,函数文件格式,例 编写函数文件myhilb.m,功能如下:,创建希尔伯特矩阵 H=(hij)mn,hij=1/(i+j-1

8、).文件包括帮助信息,基本功能,调用方式说明;调用只有一个输入参数,则自动生成方阵;检测输入变量个数,有错误则给出错误信息调用时没用返回变量,则仅显示矩阵,myhilb(3)1/3 1/4 1/5 1/4 1/5 1/6 1/5 1/6 1/7,function A=myhilb(n,m),%A=myhilb(n,m)生成一个n*m阶希尔伯特矩阵%A=myhilb(n)生成一个n*n阶希尔伯特矩阵%myhilb(n,m)显示一个n*m阶希尔伯特矩阵if nargin=1,m=n;elseif nargin=0|nargin2,error(wrong number of input argmen

9、ts);endfor i=1:n for j=1:m A1(i,j)=1/(i+j-1);%计算矩阵元素 endendif nargout=1 A=A1;%将数据传递给输出变量elseif nargout=0 format rat,disp(A1);%以分数形式显示矩阵end,例5.6.1 计算积分上限函数,在自变量 t 分别取值为1,2,3,4,5时数值积分。,f=inline(x.3./(exp(x)-1);q(1)=quad(f,eps,1);for k=1:4 q(k+1)=q(k)+quad(f,k,k+1);endq,q=0.2248 1.1763 2.5522 3.8771 4.

10、8999,MATLAB的程序调试方法,MatLab在执行程序有错时会自动终止运行,并在其命令窗口(Matlab Command Windows)中给出相应错误的提示信息同时MATLAB的编辑器(Editor)具有程序调试功能,可用调试命令用来检查程序的正确性,单步执行,断点间执行,终止调试,(1)在程序可疑处设置断点;(2)执行程序;(3)检查程序运行至断点处变量当前值(4)在程序中一步步执行(5)结束调试状态。(6)取消断点。,执行程序之后,程序会停在断点处。并出现箭头同时调试工具栏由灰色变为深色,调试程序步骤:,MATLAB编程技巧,1.矢量化尽可能使用向量和矩阵操作,例 求,t=cput

11、ime;s=0;for i=1:100000 s=s+(1/2i+1/3i);endcputime-tans=0.8750,向量运算t=cputime;n=1:100000;s=sum(1./2.n+1./3.n);cputime-tans=0.2970,2.预分配内存空间,例 生成一个 510000 的 Hilbert 矩阵,该矩阵的定义是其第 i 行第 j 列元素为 hi,j=1/(i+j-1)。,ticH=zeros(5,10000);for i=1:5 for j=1:10000 H(i,j)=1/(i+j-1);endendtocelapsed_time=1.0400,ticfor i=1:5 for j=1:10000 H(i,j)=1/(i+j-1);endendtocelapsed_time=8.6800,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号