哈工大《结构力学》ch02m文件与matlab程序设计.ppt
《哈工大《结构力学》ch02m文件与matlab程序设计.ppt》由会员分享,可在线阅读,更多相关《哈工大《结构力学》ch02m文件与matlab程序设计.ppt(68页珍藏版)》请在三一办公上搜索。
1、Ch02 M文件与MATLAB程序设计,教学目标,用交互式的方式来编写程序适用于命令行比较简单,输入比较方便,同时处理的问题步骤较少的情况。当需要处理重复、复杂且容易出错的问题时,可以进行控制流的程序设计,这就是M文件的编程工作方式。,教学重点,MATLAB 的控制流语言变量和函数的种类了解程序的调试和优化,教学过程,M文本编辑器的基本知识MATLAB 的控制流语言变量和函数的种类程序设计的辅助函数程序的调试和优化,提问,1.例举几个MATLAB中常用的函数,以及简要阐述其相应的功能。2.等差向量的生成方法有哪些?3.如何输入多项式?如何求多项式的根?4.如何创建函数式M文件?5.请简要介绍M
2、ATLAB程序设计中的for循环和while循环的使用方法及它们的主要区别。,1.M文本编辑器的基本知识,我们前面所介绍在MATLAB所做的运算,是适合于所要计算的算式不太长或是想以交谈式方式做运算,如果要计算的算式很长有数十行或是须要一再执行的算式,则那样的方式就行不通了。MATLAB提供了所谓的 M-file 的方式,可让使用者自行将指令及算式写成巨集程式然后储存成一个特别的文档,其扩展名是m,譬如 picture.m,其中的picture就是文件名称。,%新建M-file,area.m%计算一个球的体积 r=input(Type radius 输入半径:);Area=pi*r2;volu
3、me=(4/3)*pi*r3;fprintf(半径 The radius is%12.5fn,r)fprintf(面积 The area of a circle is%12.5fn,Area)fprintf(体积 The volume of a sphere is%12.5fn,volume)在指令窗口运行指令 area,1.M文本编辑器的基本知识,1.M文本编辑器的基本知识,M文本编辑器 M文件的基本属性 M文件的组成部分 脚本式M文件 函数式M文件,(1)M文本编辑器,M文件的语法类似于一般高级语言,是一种程序化的编程语言,但是,与传统的高级语言相比,M文件又有自己的特点。它只是一个简单的
4、ASC型码文本文件,因此,它的语法比一般的高级语言要简单,程序也容易调试,并且有很好的交互性。,M文件的基本属性*,M文件有两种,一种为脚本式(Script),一种为函数式(Function)。函数M文件必须满足一些标准,另外,它们还应该满足一些MATLAB 的属性。主要有以下几点:函数式M文件名和出现在文件的第一行的函数名必须相同。实际上,MATLAB 忽略了第一行的函数名,并且根据存储在硬盘上的文件名来执行函数。,M文件的组成部分*,函数式M文件的组成部分。调出M-edit窗口,在里边输入如下内容:function f=fact(n)%函数的定义行%Compute a factorial
5、value.%H1行%FACT(N)returns the factorial of N,%帮助文本%usually denoted by N!%Put simply,FACT(N)is PROD(1:N).%注释f=prod(1:n);%函数体,M文件的组成部分及其功能*,M文件的组成部分及其功能,(2)脚本式M文件,用户可以将需要重复输入的所有命令按顺序放到一个扩展名为m的文本文件下,每次运行时只要输入该M文件的文件名即可。用户自己创建的M文件的文件名要避免与MATLAB 的内置函数和工具箱中的函数重名,以免发生内置函数被替换的情况。,脚本式M文件举例,本脚本式M文件绘制一个正弦曲线:%此
6、文件用于绘制【2pi,2pi】区间的正弦曲线图x=-2*pi:0.05:2*pi;y=sin(x);plot(x,y,c+)legend(正弦曲线图),(3)函数式M文件,函数式M文件一般都要自带参数,并且有返回结果。函数式M文件的第一行都是以function开始,说明此文件是一个函数。函数式M文件中的变量都不是全局变量,仅在函数运行期间有效,函数运行完毕之后,它所定义的变量将从工作区间中清除。,例题,举例说明一个名为cylinder的函数,它输入两个参数:圆柱的高与底面半径,并且产生返回变量volume。,function volume=cylinder(height,radius)%fun
7、ction to compute the volume of a cylinder%volume=cylinder(height,radius)base=pi*radius2;volume=base*height;,function s=jiecheng(n)%此函数用来求非负整数n的阶乘%参数n可以为任意的非负整数%编写日期:2007-5-2if n0%若用户将输入参数误写成负值,则报错 error(输入参数不能为负值!);return;else if n=0%若n为0,则其阶乘为1 s=1;else s=1;for i=1:n s=s*i;end endend,函数的嵌套调用,functi
8、on s=sum_jiecheng(n)%此函数用来求1+1/2!+.+1/n!的值%参数n为任意非负整数%编写日期:2007-5-3if n0%若用户将输入参数误写成负值,则报错 disp(输入参数不能为负值!);return;else s=0;for i=1:n s=s+1/jiecheng(i);%调用求n的阶乘的函数jiecheng endend,【练习】,请编写求解扭矩T的函数,并利用该函数求解。,function Niuju=f(F,f,r,theta)degree=theta/180*pi;Niuju=4*f*F*r*sin(degree/2)/(degree+sin(degre
9、e);,clcclearF=250;f=0.35;r=0.4;theta=60;T=Niuju(F,f,r,theta),2.MATLAB程序设计,三种:顺序结构、循环结构和分支结构最简单的程序控制就是顺序结构,用户依次输入命令语句即可。MATLAB 语言还提供了4种高级的控制结构。它们是:if-else-end结构、switch-case-otherwise-end结构、for循环和while循环。,(1)顺序结构,顺序结构是最简单的程序结构,用户在编写好程序之后,系统将按照程序的物理位置顺次执行。a=1;b=2;c=3;s1=a+bs2=s1+cs3=s2/s2,disp(这是一个顺序结构
10、的例子);disp(矩阵A,B分别为);A=1 2;3 4;B=5 6;7 8;A,Bdisp(A与B的和为:);C=A+B,(2)if-else-end 语句,只有一种选择时的情况。最简单的If-Else-End结构是:if 表达式执行语句end,如果在表达式中的所有元素为真(非零),那么就执行if和end语言之间的commands,【例】apples=10;cost=apples*25;if apples5 cost=(1-20/100)*cost;end cost cost=200,(2)if-else-end 语句,ifend语句,有两种选择时的情况 if 表达式 执行语句1 else
11、 执行语句2end,在这里,如果表达式为真,则执行第一组命令;如果表达式是假,则执行第二组命令。,ifend语句,有3种或3种以上选择时的情况 if expression1 commands evaluated if expression1 is True elseif expression2 commands evaluated if expression2 is True elseif expression3 commands evaluated if expression3 is True elseif expression4 commands evaluated if expressi
12、on4 is True elseif else commands evaluated if no other expression is True end,最后的这种形式,只和所碰到的、与第一个真值表达式相关的命令被执行;接下来的关系表达式不检验,跳过其余的If-Else-End结构。而且,最后的else命令可有可无。,【例】if rand(1)0.5 disp(i love you)else disp(i donot love you)end,ifend语句,【例题】编写一个脚本,利用input()函数录入一个由百分数表示的等级数,然后根据下表,用if语句将其转化为一个字母等级:90%或者更
13、大:A80%90%:B70%80%:C60%70%:D小于60%:F请通过反复输入合法和不合法的等级百分数来测试你的程序。,grade=input(what grade?);if grade=90 letter=Aelseif grade=80 letter=Belseif grade=70 letter=Celseif grade=60 letter=Delse letter=Fend,(3)switchcaseend语句*,switch开关语句 可代替系列if-elseif-else-end结构 case条件语句,执行语句,执行语句 case 条件语句1,条件语句2,条件语句3,执行语句,
14、执行语句 otherwise,执行语句,执行语句 end,(4)trycatchend*,try-catch模块提供了一种错误捕获机制。换句话说,利用try-catch模块,MATLAB 编译系统发现的错误将被其捕获,用户可以控制MATLAB 怎样对发生的错误进行处理。try 执行语句1catch执行语句 2end,(5)for循环语句,For语句是一种循环语句,可以很方地实现循环操作,从而可以从容地应付大规模的循环语句。for i=表达式,执行语句,执行语句 end,For循环允许一组命令以固定的和预定的次数重复在for和end语句之间的commands按数组中的每一列执行一次。,【例】fo
15、r n=1:10 x(n)=sin(n*pi/10);end xx=Columns 1 through 7 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 8 through 10 0.5878 0.3090 0.0000,(5)for循环语句,编程求出sin(n/10)的值,其中n取110之间的整数。,For循环可按需要嵌套n=0:1:10;for i=1:11 for j=1:11 y(i)=sin(n(i);n(j)=n(j)*10;endend,y=Columns 1 through 7 0-0.5064 0.9300-
16、0.8027-0.1425-0.9765-0.5118 Columns 8 through 11 0.8586-0.9957 0.9917 0.9287n=1.0e+012*Columns 1 through 7 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 11 0.7000 0.8000 0.9000 1.0000可以利用break命令跳出for循环,(5)for循环语句,【例】一个简单的for循环示例。for i=1:10;%i依次取1,2,10,.x(i)=i;%对每个i值,重复执行由该指令构成的循环体end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构力学 哈工大 结构 力学 ch02m 文件 matlab 程序设计
链接地址:https://www.31ppt.com/p-5946154.html