




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关于文件和函数句柄第一张,PPT共三十二页,创作于2022年6月6.1Matlab控制流for循环while循环if-else-end结构switchcase结构第二张,PPT共三十二页,创作于2022年6月6.1.1For循环结构for n = array commandsendfor n=1:10 x(n)=sin(n*pi/10);endxx =Columns 1 through 6 0.3090 0.5868 0.8090 0.9511 1.0000 0.9511 0.8090Columns 8 through 10 0.5868 0.3090 0.0000第三张,PPT共三十二页,创
2、作于2022年6月for循环不能用for循环内重新赋值循环变量n来终止 ;在for循环内接受任何有效的MATLAB数组;for循环可按需要嵌套 ;当有一个等效的数组方法来解给定的问题时,应避免用for循环 ;为了得到最大的速度,在 for循环被执行之前,应预先分配数组 .for循环的重要说明第四张,PPT共三十二页,创作于2022年6月for n=1:10 x(n)=sin(n*pi/10); n=10; endxx = Columns 1 through 6 0.3090 0.5868 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through
3、10 0.5868 0.3090 0.0000 第五张,PPT共三十二页,创作于2022年6月for n=1:5 for m=5:-1:1 A(n,m)=n2+m2;end disp(n)end12345AA =2 5 10 16 265 8 13 20 2910 13 18 25 3416 20 25 32 4126 29 34 41 50 第六张,PPT共三十二页,创作于2022年6月 n=1:10;x=sin(n.*pi/10)x =Columns 1 through 6 0.3090 0.5868 0.8090 0.9511 1.0000 0.9511 0.8090Columns 8
4、through 10 0.5868 0.3090 0.0000 第七张,PPT共三十二页,创作于2022年6月x=zeros(1,10); % preallocated memory for xfor n=1:10 x(n)=sin(n*pi/10);end; 第八张,PPT共三十二页,创作于2022年6月6.1.2while循环结构while expression commandsend num=0;EPS=1; while (1+EPS)1EPS=EPS/2;num=num+1; end numnum =53 EPS=EPS2EPS =2.2204e-016第九张,PPT共三十二页,创作于
5、2022年6月6.1.3if-else-end分支结构if expression commandsend if expression commands evaluated if True else commands evaluated if Falseendif expression1 commands evaluated if expression1 is True elseif expression2 commands evaluated if expression2 is True elseif else commands evaluated if no other expression
6、 is True end 第十张,PPT共三十二页,创作于2022年6月break和continue的用法 EPS=1; for num=1:1000 EPS=EPS/2; if (1+EPS) numnum = 53 EPS=1; for num=1:1000 EPS=EPS/2; if (1+EPS)1continue end EPS=EPS*2 breakendEPS =2.2204e-016 numnum = 53 第十一张,PPT共三十二页,创作于2022年6月6.1.4switch-case结构switch exex为一标量或字符串case test1(commands 1) ca
7、se test2(commands 2) case testk(commands k) otherwise(commands)第十二张,PPT共三十二页,创作于2022年6月for i=1:10;ai=89+i;bi=79+i;ci=69+i;di=59+i;end;c=d,c;Name=Jack,Marry,Peter,Rose,Tom;Mark=62,83,56,94,100;Rank=cell(1,5);S=struct(Name,Name,Marks,Mark,Rank,Rank);for i=1:5 switch S(i).Marks case 100 S(i).Rank=满分; c
8、ase a S(i).Rank= 优秀; case b S(i).Rank= 良好; case c S(i).Rank= 及格; otherwise S(i).Rank=不及格; endend 第十三张,PPT共三十二页,创作于2022年6月disp(学生姓名 , 得分 , 等级);disp( )for i=1:5;disp(S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank);end;学生姓名 得分 等级 Jack 62 及格Marry 83 良好Peter 56 不及格Rose 94 优秀Tom 100 满分 第十四张,P
9、PT共三十二页,创作于2022年6月6.2脚本文件和函数文件6.2.1M脚本文件的特点脚本文件运行后,所产生的所有变量都驻留在Matlab基本工作空间中。一串按用户意图排列而成的(包括控制流向指令在内的)Matlab指令集合;第十五张,PPT共三十二页,创作于2022年6月6.2.2M 函数文件及其特点1.函数文件的第一行总是以 “function”引导的“函数申明行”(function declaration line) 。4. 在函数文件中调用某脚本文件,那该脚本文件运行产生的所有变量都存放于该函数空间之中。3.函数工作空间。2.输入参量包含传递这个函数的数据,输出变量包含从这个函数输出的
10、变量。第十六张,PPT共三十二页,创作于2022年6月6.2.3函数文件一般结构1.函数申明行 :以关键字 function开头,定义函数名以及函数的输入输出参量。函数名和文件名必须相同。5.函数体:Matlab指令,接收输入参量,进行程序流控制,得到输出参量。4.编写和修改记录:以%开头。标志编写及修改该文件的作者、日期和版本记录,用于软件档案管理。3.在线帮助文件文本 :以%开头。通常包括:函数输入输出参量的含义,调用格式说明。2.H1行:以%开头,包括大写体的函数文件名;运用关键词要描述的函数功能。第十七张,PPT共三十二页,创作于2022年6月circle.mfunction sa =
11、 circle(r,s)%CIRCLE绘制一个半径为r,颜色为s的圆周线或圆周面%r指定半径的数值%s指定线色的字符串%sa圆面积% circle(r)利用蓝实线画半径为 r 的圆周线.% circle(r,s)利用串 s 指定的线色画半径为 r 的圆周线.% sa=circle(r)计算圆面积,并画半径为 r 的蓝色圆面.% sa=circle(r,s)计算圆面积,并画半径为 r 的 s 色圆面.% 编写于1999年4月6日,修改于1999年8月26日。第十八张,PPT共三十二页,创作于2022年6月if nargin2 error(输入参量太多。);end;if nargin=1 s=b;
12、end;t=0:pi/100:2*pi;x=r*exp(i*t);if nargout=0 plot(x,s);else sa=pi*r*r; fill(real(x),imag(x),s)end第十九张,PPT共三十二页,创作于2022年6月第二十张,PPT共三十二页,创作于2022年6月6.2.4局部变量和全局变量局部变量 存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本身。全局变量通过global指令定义变量,没有采用global定义的函数或基本工作空间,将无权享用全局变量。 第二十一张,PPT共三十二页,创作于2022年6月关于全局变量的说明1.如果全
13、局变量的内容发生了变化,那么其他函数空间以及基本工作空间中的同名变量也就随之变化。5.全局变量损害函数的封装性,不提倡使用全局变量。4. 建议选用大写字符命名全局变量。3.对全局变量的定义必须在变量被使用之前进行。建议把全局变量的定义放在函数体的首行位置。2.除非与全局变量联系的所有工作空间都被删除,否则全局变量依然存在。第二十二张,PPT共三十二页,创作于2022年6月6.3 Matlab的函数类别Matlab的M文件分为M脚本文件和M函数文件。函数Function又被分为主函数、子函数、嵌套函数、私用函数、匿名函数等。第二十三张,PPT共三十二页,创作于2022年6月主函数和子函数 一个m
14、atlab的M文件可以包含多个函数,第一个函数为主函数,其它则为子函数。保存时文件名与主函数名相同。外部程序只能对主函数进行调用。第二十四张,PPT共三十二页,创作于2022年6月子函数的特点: 1.子函数的结构与M函数文件基本相同。 2.在M文件内,主函数位置为首位不可改变,子函数位置次序可随意。 3.子函数只能被同一文件中的主函数或其它子函数调用。 4. 通过文件名调用时,子函数的优先级低于内装函数。 5. 主、子函数的工作空间互相独立,变量传递利用哑实结合。第二十五张,PPT共三十二页,创作于2022年6月匿名函数参见课本P251第二十六张,PPT共三十二页,创作于2022年6月6.4函
15、数句柄函数句柄(Function handle)是Matlab6启用的新数据类型。它保存着“为该函数创建句柄时的路径、函数名以及可能存在的重载方法”。第二十七张,PPT共三十二页,创作于2022年6月6.4.1函数句柄的创建和观察 hsin=sin; class(hsin)ans =function_handle size(hsin)ans = 1 1 CC=functions(hsin)CC = function: sin type: simple file: MATLAB built-in function 第二十八张,PPT共三十二页,创作于2022年6月6.4.2函数句柄的基本用法不管
16、名为FunName的函数文件是否在当前搜索路径上,不管它是否是子函数或私用函数,只要句柄 hfun存在,那么它代表的函数总能被正确地执行。在不使用函数句柄的情况下,对 FunName进行多次调用时,每次都要为该函数进行全面的路径搜索,这直接影响计算速度。借助 hfun可完全克服这种无谓的时间消耗。1.argout1,argout2,argoutn=FunName(argin1,argin2,arginn)2.hfun=FunName3.argout1,argout2,argoutn=feval(hfun,argin1,argin2,arginn) 第二十九张,PPT共三十二页,创作于2022年6月y1,y2,=feval(FH,arg1,arg2,)执行函数句柄FH指定的计算y1,y2,=feval(FN,arg1,arg2,)执行函数名字符串FN指定的计算x=pi/4;Ve=feval(1+sin(x) Ve = 1.6061 Vf=feval(1+sin(x),x) ? Error using = fevalInvalid functi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全生产管理制度总则
- 畜牧业的生态农业与生态环境考核试卷
- 灯具销售中的客户关系深化策略考核试卷
- 橡胶制品的发展趋势与未来展望考核试卷
- 玉米种植农业转基因技术安全性评价考核试卷
- 玻璃纤维在室内装饰材料中的应用考核试卷
- 拖拉机田间作业性能考核试卷
- 2025年华为认证HCIA Storage H13-611存储考试题库(含答案)
- 第3章 新媒体营销时代的用户分析
- 超市食品安全知识培训内容
- 2024年河南职业技术学院高职单招语文历年参考题库含答案解析
- 甲状腺危象危重症护理常规
- 《炎症性肠病课件》课件
- (2025)专业技术人员继续教育公需课题库(附含答案)
- 小学一年级班主任工作实习计划(16篇)
- 肿瘤科护理沟通技巧
- 生物识别技术保障个人隐私
- 第四单元 民族团结与祖国统一 -【背诵清单】2022-2023学年八年级历史下册期末复习必背核心知识梳理(部编版)
- 2025年高考政治一轮复习知识清单选择性必修三 《逻辑与思维》知识点复习
- 基于物联网的农产品质量安全监测平台建设方案
- 临床肠气囊肿病影像诊断与鉴别
评论
0/150
提交评论