欢迎来到天天文库
浏览记录
ID:40265892
大小:335.01 KB
页数:19页
时间:2019-07-29
《数学建模通识第三讲MATLAB1~~》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MATLAB程序设计史加荣西安建筑科技大学理学院jiarongs3@163.com禁止在网上传播公共邮箱:xajdmath@163.com1流程控制流程控制语句可改变程序执行的流程,MATLAB的流程控制语句有以下四类:●if,else,elseif,end构成条件转移语句。●switch,case,otherwise,end构成情况切换语句。●while,end构成不定次重复的循环语句。●for,end构成指定次重复的循环语句。最简单的条件语句是仅由if和end组成的语句,它可根据逻辑表达式的值选择
2、是否执行。例如:ifrem(a,2)==0disp('aiseven')b=a/2;end这一段程序完成当a为偶数时,b=a/2;否则不作任何处理。条件语句if语句可嵌套使用,多层嵌套可完成复杂的设计任务。当逻辑表达式不是标量时,则只有当矩阵的所有值为非零时,条件才满足,因此如果X为矩阵,则ifXstatementsend等效于ifall(X(:))statementsendifn<0disp('Inputnmustbepositive.')elseifn==0disp('n=0')elseifrem
3、(n,2)==0disp('n是2的倍数')elseifrem(n,3)==0disp('n是3的倍数')elsedisp('其它情况')endelseif与elseif的区别当逻辑表达式为空阵列时,则表示为FALSE,例如,当A为空阵列,则语句ifAStatements1elseStatements2end执行Statements2。functionf=fun1(x)ifx>1f=x^2+1;endifx<=1f=2*x;endfun(2),fun(-1)functionf=fun1(x)ifx>1
4、f=x^2+1;elsef=2*x;endfunctionf=fun2(x)ifx>1f=x^2+1;elseifx<=0f=x^3;elsef=2*x;endendfunctionf=fun2(x)ifx>1f=x^2+1;elseifx<=0f=x^3;elsef=2*x;endfun(2),fun(0.5),f(-1)for语句可完成指定次重复的循环,这是广泛应用的语句。例如,为求n!,我们可循环n次,每次求出k!=(k-1)!×k。r=1fork=1:20r=r*k;enddisp(r)for
5、语句可利用数组(即阵列)任意指定循环变量的值,例如:varx=[73105];%vary=zeros(size(varx));k=0;forx=varxk=k+1;vary(k)=x.^2;enddisp([varx;vary])指定次重复循环语句for语句还可以嵌套使用,从而构成多重循环。例如,利用rand函数产生10个随机数,然后利用嵌套for循环进行从大到小排序。MATLAB程序为x=fix(100*rand(1,10)) ;disp(x)n=length(x);fori=1:n−1forj=n
6、:−1:i+1ifx(j)>x(j-1)y=x(j);x(j)=x(j-1);x(j-1)=y;endendenddisp(x)fori=1:n-1flag=-1forj=n:-1:i+1ifx(j)>x(j-1)y=x(j);x(j)=x(j-1);x(j-1)=y;flag=0 ;endendifflag,break,endenddisp(x),disp(['循环次数为',num2str(i)])不定次重复循环语句while语句可完成不定次重复的循环,它与for语句不同,每次循环前要判别其条件,如
7、果条件为真或非零值,则继续循环,否则结束循环。当条件是一表达式时,其值必定会受到循环语句的影响。例如,为求出一个值n,使其n!最大但小于1050,则可输入r=1;k=1;whiler<1e50r=r*k;k=k+1;endk=k-1;r=r./k;k=k-1;disp(['The',num2str(k),'!is',num2str(r)])也可以采用变量的值控制循环次数,例如var=[12340560];a=[];k=1;whilevar(k)a=[avar(k).^3];k=k+1;enddisp(
8、a)例设银行年利率为r%.将10000元钱存入银行,问多长时间会连本带利翻一番?r=3.6(五年期);money=10000years=0whilemoney<20000years=years+1money=money*(1+3.6/100)end情况切换语句switch语句可根据表达式的不同取值执行不同的语句,这相当于多条if语句的嵌套使用。例如,根据varl变量的取值{−1,0,1},分别执行相应的语句,可输入switchvarlcase-1disp
此文档下载收益归作者所有