版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章 M文件设计文件设计命令文件命令文件( (脚本式脚本式) )变量、表达式、运算符变量、表达式、运算符程序设计中的流程控制程序设计中的流程控制函数文件的编写函数文件的编写命令文件命令文件( (脚本式脚本式M M文件文件) ) 无输入参数,不前往参数无输入参数,不前往参数 操作任务空间中的数据操作任务空间中的数据 对于需求多次执行的一系列命令特别有用对于需求多次执行的一系列命令特别有用函数文件函数文件( (函数式函数式M M文件文件) ) 可输入参数,也可前往参数可输入参数,也可前往参数 函数的变量为部分变量,也可设外部变量。函数的变量为部分变量,也可设外部变量。 扩展扩展MATLAB
2、MATLAB的函数库的函数库M文件分为命令文件和函数文件两种文件分为命令文件和函数文件两种需求几行需求几行( (或几十行或几十行) )命令才干完成的作业命令才干完成的作业, ,最好用程序编辑器编写命令文件。对文件命名最好用程序编辑器编写命令文件。对文件命名, ,保管在当前任务目录中保管在当前任务目录中. . 命令文件命令文件MATLAB的命令序列的命令序列 nkknkS0121)1(4k=0;n=1;f=1;an=1;s=1;while an0.00002 f= - f; n=n+2; an=1/n; s=s+f*an; k=k+1;endP=4*s变量创建常用赋值语句实现变量创建常用赋值语句
3、实现 变量名变量名=数据数据 theta=3.14/4 %将数据赋值给变量名将数据赋值给变量名留意:变量名必需是英文字母打头;留意:变量名必需是英文字母打头;表达式表达式由变量、运算符、函数、数字组成由变量、运算符、函数、数字组成表达式创建常用赋值方法实现表达式创建常用赋值方法实现 变量名变量名=表达式表达式theta=pi/4x=sin(theta);P=1+2*x+3*x2+4*x3MATLAB的变量和表达式的变量和表达式部分变量:具有函数内部作用范围部分变量:具有函数内部作用范围全局变量:可在几个函数和根本任务空间全局变量:可在几个函数和根本任务空间之间共享,具有全局作用范围之间共享,具
4、有全局作用范围全局变量的声明:全局变量的声明: global global 变量名变量名1 1 变量名变量名2 2 部分变量和全局变量部分变量和全局变量永久变量永久变量 ans; eps; pi; i; j; inf; NaN;+ 加加 .+ 点加点加 - 减减 .- 点减点减 矩阵幂矩阵幂 . 点幂点幂* 乘乘 .* 点乘点乘/ 右除右除 ./ 点右除点右除 左除左除 . 点左除点左除1 .算术运算符算术运算符2.关系运算符关系运算符 小于小于 大于大于 = 大于等于大于等于 = 等于等于 = 不等于不等于3.逻辑运算符逻辑运算符 & 与与 (and) | 或或 (or) 非非 (n
5、ot)MATLAB 程序中的流程控制程序中的流程控制条件控制条件控制; 循环控制循环控制; 错误控制错误控制;终止运转控制终止运转控制条件控制条件控制有选择地运转程序块有选择地运转程序块1. if / elseif 语句语句分析以下程序,阐明运转结果及缘由分析以下程序,阐明运转结果及缘由 clear a=100;b=10; if ab disp(ab) %显示字符串显示字符串ab) %显示字符串显示字符串ab end2. Switch / case 语句语句clearn=input(input n=);switch mod(n,5)case 0 fprintf(%d 是是5的倍数的倍数,n)o
6、therwise fprintf(%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)=7014087332. while循环循环 while循环将循环体中的语句循环执行不定循环将
7、循环体中的语句循环执行不定次数。次数。 语法:语法: while 条件表达式条件表达式 循环体语句循环体语句 end条件表达式普通由变量、数字、逻辑运算、关系运条件表达式普通由变量、数字、逻辑运算、关系运算符和普通运算符组成,以判别循环的进展和停顿;算符和普通运算符组成,以判别循环的进展和停顿;只需表达式的值只需表达式的值(逻辑值逻辑值)结果为正确结果为正确(非非0),循环继,循环继续;直到表达式值为续;直到表达式值为0,循环停顿。,循环停顿。 角谷猜测角谷猜测. n=input(input n=); %输入数据输入数据while n=1 r=rem(n,2); %求求n/2的余的余数数 if
8、 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, 13. continue 命令命令通常用于通常用于for或或while循环语句中循环语句中,与与if语句一同运用语句一同运用,到达跳过本次循环到达跳过
9、本次循环,去执行下一轮循环的目的去执行下一轮循环的目的分析以下程序,阐明运转结果及缘由分析以下程序,阐明运转结果及缘由a=3;b=6;for i=1:3 b=b+1; if i2 continue %当当if条件满足时不再执行后面语句条件满足时不再执行后面语句 end a=a+2 %当当i2 break %当当if条件满足时不再执行循环条件满足时不再执行循环 end a=a+2end运转结果运转结果:a=5a=7程序流控制语句程序流控制语句 returnreturn指令指令 终止当前的命令序列,把控制前往到调用函数终止当前的命令序列,把控制前往到调用函数或键盘。或键盘。pausepause 使
10、程序运转停顿,等待用户按恣意键继续。使程序运转停顿,等待用户按恣意键继续。break break 用于中断用于中断forfor或或whilewhile循环的执行。当中断后,循环的执行。当中断后,程序退到本级循环以外的下一条语句执行。程序退到本级循环以外的下一条语句执行。inputinput 提示用户从键盘输入数值、字符串或表达式,提示用户从键盘输入数值、字符串或表达式,并接受输入。并接受输入。函数文件编写函数文件编写函数文件名必需以英文字母开头函数文件名必需以英文字母开头, ,并以并以 .m .m 为后为后缀缀, ,如如f1.mf1.m、f2.mf2.m、g1.mg1.m、g2.mg2.m、f
11、unction 前往变量列表函数名前往变量列表函数名(输入变量列输入变量列表表)%注讲解明注讲解明 输入变量输入变量nargin格式检测格式检测,输出变量输出变量 nargout检检测测 函数体函数体留意留意:函数名应该和文件名一样函数名应该和文件名一样函数文件格式函数文件格式例例 编写函数文件编写函数文件myhilb.m,myhilb.m,功能如下功能如下: :创建希尔伯特矩阵创建希尔伯特矩阵 H=(hij)mn , hij = 1/(i+j-1).文件包括协助信息文件包括协助信息,根本功能根本功能,调用方式阐明调用方式阐明;调用只需一个输入参数,那么自动生成方阵调用只需一个输入参数,那么自
12、动生成方阵;检测输入变量个数,有错误那么给出错误信检测输入变量个数,有错误那么给出错误信息息调用时没用前往变量,那么仅显示矩阵调用时没用前往变量,那么仅显示矩阵myhilb(3) 1/3 1/4 1/5 1/4 1/5 1/6 1/5 1/6 1/7function 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 |
13、nargin2, error(wrong number of input argments);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 5.6.1 计算积分上限函数计算积分上限函数 txdxextF031)(在自变量在自变量 t t 分别取值为分别取值为1 1,2 2,3 3,4 4,5
14、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);endqq = 0.2248 1.1763 2.5522 3.8771 4.8999MATLAB的程序调试方法的程序调试方法MatLab在执行程序有错时会自动终止运转,并在在执行程序有错时会自动终止运转,并在其命令窗口其命令窗口(Matlab Command Windows)中给出相中给出相应错误的提示信息应错误的提示信息同时同时MATLAB的编辑器的编辑器(Editor)具有程序调试功能,具有程序调试功能,
15、可用调试命令用来检查程序的正确性可用调试命令用来检查程序的正确性单单步步执执行行断断点点间间执执行行终终止止调调试试(1)(1)在程序可疑处设置断点;在程序可疑处设置断点;(2)(2)执行程序;执行程序;(3)(3)检查程序运转至断点处变量当前值检查程序运转至断点处变量当前值(4)(4)在程序中一步步执行在程序中一步步执行(5)(5)终了调试形状。终了调试形状。(6)(6)取消断点。取消断点。执行程序之后,程执行程序之后,程序会停在断点处。序会停在断点处。并出现箭头同时并出现箭头同时调试工具栏由灰色调试工具栏由灰色变为深色变为深色调试程序步骤:调试程序步骤:MATLAB编程技巧编程技巧1.1.矢量化矢量化尽能够运用向量和矩阵操作尽能够运用向量和矩阵操作 1000000)3121(kkk例例 求求t=cputime;s=0;for i=1:100000 s=s+(1/2i+1/3i); endcputime-tans = 0.8750向量运算向量运算t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国外原料订购合同
- 饲料行业同盟购销合同
- 房屋买卖合同规范化的意义
- 版合同协议广告业务发布
- 钢琴独奏演出安全保障合同
- 短期贷款抵押合同
- 热水器产品销售分红合同
- 工程用砂石料采购合同
- 借款合同争议解决上诉状
- 智能工厂自动化改造研发合作合同
- 中医医案学习方法:医案的分类
- 小学《象棋》校本课程教案
- 中小学生研学旅行实务 课件全套 张金良 项目1-8研学旅行概论 -研学旅行经典案例
- 《计算机应用基础》课件-8.1 人工智能与机器学习
- 中国地理(广州大学)智慧树知到答案2024年广州大学
- 风险保证金协议书
- 《膝骨关节炎针刀临床诊疗指南-公示稿》
- 安全培训考试题及参考答案(达标题)
- 新课标视域下小学信息科技有效课堂的构建与实践
- 中国心力衰竭基层诊疗与管理指南(实践版2024)解读
- TD/T 1012-2016 土地整治项目规划设计规范(正式版)
评论
0/150
提交评论