- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 MATLAB 程序设计 脚本式M文件和函数式M文件 脚本式M文件和函数式M文件的区别 M 脚本文件 一串按用户意图排列的指令集合 脚本文件运行后产生的变量都驻留在基本工作空间,除非用clear命令删除 运行一个脚本文件等价于从命令窗口中顺序执行文件中的各条语句 要注意的问题: 文件名以字母开头,由字母、数字、下划线组成,并要防止与变量名冲突 存盘时存放的目录默认为..\MATLAB\ work下,若要改变目录,必须用Set Path将改变后的路径添加至MATLAB中 编写脚本文件步骤: 打开文本编辑器,生成新文件 运行文本编辑器的方法: 提示符下输入edit 输入程序 存盘 运行文件 函数文件 “黑箱” 格式:function 输出变量=函数名称(输入变量表) 形式上,首行以“function”引导“函数申明行” 函数文件名与函数名一致 函数文件运行时,系统为它开辟一个临时工作空间——函数工作空间 函数文件 (必须为f1.m) function [y1 y2 y3 y4]=f1(x1,x2) y1=x1+x2; y2=x1-x2; y3=x1*x2; y4=x1/x2; 脚本文件 a=3,b=4; [y1 y2 y3 y4]=f1(a,b) A=[1 2;3 4],B=[2 4;3 5]; [Y1 Y2 Y3 Y4]=f1(A,B) 程序设计 流程控制 循环控制 条件控制 错误控制 程序终止控制 循环控制 for循环结构 for 循环变量=表达式1:表达式2:表达式3 命令序列 (循环体) end 注: for循环允许一组命令以固定的和预定的次数进行重复 表达式1:循环变量初值,表达式3:循环变量末值,表达式2:循环变量步长 表达式组合也可用数组来表示,但需要对数组进行预定义;当使用数组实现时,为节省时间,应避免用for循环 循环结构可以嵌套使用 例:在区间[-2,-0.75]内,以步长0.25,对函数y=f(x)=1+1/x求值,并列表显示 r=[];s=[]; for x=-2.0:0.25:-0.75 y=1+1/x; r=[r x]; s=[s y]; end [r;s] 例:求向量a=[-2 5 3 6 -2]各个元素之和 a=[-2 5 3 6 -2]; s=0;k=0; for n=a n % 显示每次循环时的数值 s=s+n; end s % 显示总和 while循环结构 While 条件表达式 命令序列 end 注: 循环体执行次数不确定 表达式的值可以为标量值和数组 表达式为空数组,则认为该表达式值为假 例:生成斐波那契数列,直到a(i)10000为止。 a(1)=1;a(2)=1;i=2; while a(i)=10000 a(i+1)=a(i-1)+a(i); i=i+1; end; i,a(i), 结果:i=21; a(i)=10946 条件控制 if/elseif 结构 switch/case 结构 switch/case 语句的可读性更强,并且可以比较不同长度的字符串 if-else-end分支结构 if 条件 命令序列 End if 条件1 命令序列1 Else 命令序列2 end if 条件1 命令序列1 elseif 条件2 命令序列2 …… Else 命令序列n end 注:if 和break配合使用,可强制终止循环 例:编写函数,计算 并绘制函数图像 function y=eg2_4a(x) n=length(x); for i=1:n if x(i)1 y(i)=x(i)^2; elseif x(i)-1 y(i)=1; else y(i)=3+2*x(i); end end x=linspace(-5,5);y=eg2_4a(x); plot(x,y) 例:生成斐波那契数列 n=100;a=ones(1,n); for i=3:n a(i)=a(i-1)+a(i-2); if a(i)=10000 a(i), break; end end switch-case结构 switch ex case test1 (commands 1) case test2 …… case testk (commands k) otherwise (commands) end 例:学生的成绩管理 clear; for i=1:10 a{i}=89+i;b{i}=79+i;c{i}=69+i;d{i}=59+i; end; %
原创力文档


文档评论(0)