ch6_编程.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch6_编程

M文件和函数句柄从总体上说,单独的MATLAB指令,及由若干指令构成的孤立表达式,只能解算或仿真简单理论数学模型所描述的问题。复杂些的问题通常需要用一组理论数学算式。这些问题的解算及仿真就需要借助较复杂的MATLAB程序进行。这种MATLAB程序由较多的MATLAB指令和多种多样的MATLAB表达式组成,并循着一定的执行次序运行。这种程序的扩展名为m。这就是脚本M文件或函数M文件。本章系统介绍编写MATLAB程序时最常用到的四种控制结构、M函数文件的构造、主函数、子函数以及匿名函数。最后一节专门叙述函数句柄的创建、观察和调用。MATLAB控制流if-else-end条件控制表 6.1-1 if-else-end分支结构的使用方式单分支双分支多分支if expr(commands)endif expr(commands1)else(commands2)endif expr1(commands)elseifexpr2(commands)…….else(commandsk)end〖说明〗【例6.1-1】1)function [xmin,fmin,n]=exm060101(fx,a,b,Nt)% exm060101.m% fx% a、b% Nt% xmin、ymin% n[~,f0]=fminbnd(fx,a,b);%n=1;%jj=1;%while 1n=2*n;%d=(b-a)/n;% x=a:d:b;%ii=0;xc=zeros(1,n);fc=xc;% for k=1:n% [w,f,eflag]=fminbnd(fx,x(k),x(k+1));% if eflag0% ii=ii+1;xc(ii)=w;fc(ii)=f; end end [fmin,kk]=min(fc);%xmin=xc(kk);% if abs(f0-fmin)1e-6%jj=jj+1;% if jjNt%break% endelseif f0-fmin1e-6% f0=fmin;%jj=1;% endend2)clearfx=@(x)(sin(x)^2*exp(-0.1*x)-0.5*sin(x)*(x+0.1));a=-50;b=5;[xmin,fmin,n]=exm060101(fx,a,b,3);fprintf(在x=%6.5f处,函数到达最小值%6.5f\n,xmin,fmin)fprintf(最终子区间分割数为 %d\n,n)在x=-19.60721处,函数到达最小值-3.34765最终子区间分割数为 128〖说明〗switch-case控制结构表 6.1-2switch-case控制结构的使用方式指令格式含义switch exprcase value_1(commands1)case value_2(commands2) case value_k(commandsk)otherwise(commands)end〖说明〗【例6.1-2】clear;%定义分数段:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(60)。for k=1:10a(k)={89+k};b(k)={79+k};c(k)={69+k};d(k)={59+k};end;c=[d,c];%输入学生的名字和分数A=cell(3,5);%A(1,:)={Jack,Marry,Peter,Rose,Tom};%7A(2,:)={72,83,56,94,100};%8%根据学生的分数,求出相应的等级。for k=1:5 switch A{2,k}% case 100 %r=满分; case a%r=优秀; case b%r=良好; case c%r=及格; otherwise %r=不及格; endA(3,k)={r};endAA = Jack Marry Peter Rose Tom [ 72] [ 83] [ 56] [ 94] [ 100] 及格 良好 不及格 优秀 满分〖说明〗for循环和while循环表 6.1-3循环结构的使用方式for 循环while循环forix=array (commands)endwhile expression (commands)end【例6.1-3】创建Hilbert矩阵。1)2)K=5;A = zeros(K,K) ;%for m = 1:K%for n = 1:K%A(m,n) = 1/(m+n -1);ende

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档