数学软件Matlab省名师优质课赛课获奖课件市赛课一等奖课件_第1页
数学软件Matlab省名师优质课赛课获奖课件市赛课一等奖课件_第2页
数学软件Matlab省名师优质课赛课获奖课件市赛课一等奖课件_第3页
数学软件Matlab省名师优质课赛课获奖课件市赛课一等奖课件_第4页
数学软件Matlab省名师优质课赛课获奖课件市赛课一等奖课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学软件Matlab——编程基础(脚本文件)1/401本讲主要内容M文件基本运算:算术、关系、逻辑简单输入输出控制结构:次序、选择、循环2/402Matlab编程

Matlab作为一个广泛应用于科学计算工具软件,不但含有强大数值计算能力和丰富绘图功效,同时也能够与C、FORTRAN等高级语言一样进行程序设计利用Matlab程序控制功效,将相关Matlab命令编成程序存放在一个文件中(M文件),然后在命令窗口中运行该文件,Matlab就会自动依次执行文件中命令,直到全部命令执行完成在Matlab程序设计中,要充分利用Matlab数据结构特点,提升编程效率Matlab编程3/403用Matlab语言编写程序称为M文件

M文件以.m

为扩展名

M文件是由若干Matlab命令组合在一起组成,它能够完成一些操作,也能够实现某种算法

M文件分类(依据调用方式不一样)

Script:脚本文件/命令文件

Function:函数文件

M文件

M文件介绍能够直接运行M文件4/404

M文件创建与编辑M文件新建一个M文件菜单操作(FileNewM-File

)命令操作(editM文件名)命令按钮(快捷键)打开已经有M文件菜单操作

(FileOpen

)命令操作(editM文件名)命令按钮

(快捷键)双击M文件M文件是文本文件,能够用任何文本编辑器来建立和编辑,通常使用Matlab自带M文件编辑器5/405编程示例编程方式:新建一个M文件,将上面内容输入到该文件中,然后在命令窗口中输入该文件名,即可执行例:用mesh绘制半径为3

命令行方式:u=[0:pi/60:2*pi];v=[0:pi/60:pi];R=3;[U,V]=meshgrid(u,v);X=R*sin(V).*cos(U);Y=R*sin(V).*sin(U);Z=R*cos(V);mesh(X,Y,Z);axisequal;注:M文件命名规则与变量相同!6/406在命令窗口中输入f2c,即可执行该M文件例:编写M文件,将华氏温度转化为摄氏温度:编程示例clear;%去除当前工作空间中全部变量f=input('Pleaseinputf:');c=5*(f-32)/9;fprintf('c=%g\n',c);新建一个M文件f2c.m,内容以下:

M文件运行所产生变量都驻留在Matlab当前工作空间百分号是注释符

M文件必须在当前工作目录下才能运行7/407本讲主要内容

M文件基本运算:算术(略)、关系、逻辑

简单输入输出

控制结构:次序、选择、循环8/408关系运算比较大小,假如结论是真则返回1,不然返回0注意=

=与=

区分能够对两个一样大小数组进行比较运算,即对应分量进行比较,结果为一个一样大小0-1数组也能够对一个数组和一个标量进行比较运算,此时标量和数组中每一个元素极限比较,结果也是一个0-1数组关系运算:比较大小>大于>=大于等于==等于<小于<=小于等于~=不等于9/409例:关系运算举例2+2==4A=[135;206]B=[310;246]A>=BB<4x=pi^2<810/4010逻辑运算逻辑运算and(x,y)与or(x,y)或xor(x,y)异或not(x)非&&与(短格式)||或(短格式)注意&,|

与&&,||

区分&逻辑与|逻辑或~逻辑非例:x=5;3<x<8%ERROR3<x&x<811/4011运算对象与或非异或ABA&BA|B~AXor(A,B)000010010111100101111100逻辑运算在Matlab中,0表示“假”,非零表示“真”

运算法则12/4012all(x)

%

逻辑与推广

假如向量

X

中全部元素都非零,则返回1,不然返回0若x

为矩阵,则any

和all

按列运算,返回一个0-1向量逻辑运算逻辑运算函数:all、anyany(x)%

逻辑或推广假如向量

X

中存在非零元素,则返回1,不然返回0例:A=[6183589475];%学生成绩all(A>=60)%全部及格否?any(A>=90)%有没有90分以上?13/4013isfinite(x)若x

为有限值,返回真值1isinf(x)若x

为无穷大,返回真值1isnan(x)若x

为不定值,返回真值1isreal(x)若x

无虚部,返回真值1isstr(x)若x

为一个字符串,返回真值1isempty(x)若x

为空,返回真值1isprime(x)判断x

是否为素数一些测试函数isfinite(5)isinf(5)测试函数例:14/4014小括号幂,点幂正号,负号,逻辑非乘,除,点乘,点除加,减冒号运算关系运算&|&&||运算优先级高低15/4015本讲主要内容

M文件

基本运算:算术、关系、逻辑简单输入输出

控制结构:次序、选择、循环16/4016例:x=input('Pleaseinputx:')数据输入:inputx=input(提醒信息)其中提醒信息为字符串,该命令要求用户输入x

值(能够是数或字符串)inputname=input('What''syourname?')例:

输入字符串时必须带单引号单引号输出:两个连续单引号17/4017disp(x)输出变量x

值,x能够是数值矩阵或字符串一次只能输出一个变量值x=pi;B=[123;456;789];disp(x)disp(B)disp数据输出:dispstr='Hello,Tom!';disp(str)例:18/4018fprintffprintf(fid,format,变量列表)数据格式化输出按指定格式将变量值输出到屏幕或指定文件中

fid

为文件句柄,若缺省,则输出到屏幕上

format

用来指定数据输出时采取格式,包含:

普通字符串、格式字符串、转义字符格式字符串:以%开头,包含:

flags

(可选)

Widthandprecisionfields(域宽和精度,可选)

Conversioncharacter(格式说明符,必须)19/4019fprintf举例fprintf('a=%-12.5f\n',pi)以%

开头flagfieldwidthprecision格式说明符-

:左对齐+

:输出符号0

:空白处添0空格:前面加一空格字段宽度小数点后位数格式字符串示例20/4020fprintf

惯用格式说明符c字符型g浮点数(自动)d十进制整数o八进制e浮点数(科学计数法)s字符串f浮点数(小数形式)x/X十六进制

惯用转义字符\b退后一格\t水平制表符\f换页\\反斜杠\n换行''单引号(两个连续单引号)\r回车%%百分号(两个连续百分号)21/4021fprintf举例a='Hello';b=2.4;c=100*pi;fprintf('a=%s,b=%f,c=%e\n',a,b,c)例:

格式字符串与输出变量要一一对应!能够只输出一个字符串fprintf('TodayisTuesday!\n')例:fprintf('pi=%12.5f=\n',pi)fprintf('pi=%-12.5f=\n',pi)fprintf('pi=%012.5f=\n',pi)例:22/4022本讲主要内容

M文件

基本运算:算术、关系、逻辑

简单输入输出控制结构:次序、选择、循环23/4023程序控制结构有三种:M文件控制流按排列次序依次执行各条语句,直到程序最终这是最简单一个程序结构,普通包括数据输入输出、数据计算或处理等次序结构次序结构、选择结构和循环结构任何复杂程序都由这三种基本结构组成24/4024选择结构选择结构选择结构实现

if

语句

switch

语句依据给定条件成立或不成立,分别执行不一样语句25/4025单分支if

语句if

条件表示式

语句组endif条件语句if

条件表示式

语句组1else

语句组2end双分支if

语句例:ifscore>=60mark='passed';end例:ifa>bx=a;elsex=b;end26/4026if

条件表示式1

语句组1elseif

条件表示式2

语句组2......

elseif

条件表示式m

语句组melse

语句组end多分支if

语句if条件语句例:计算一个数符号ifx>0sign_of_x=1;elseifx<0sign_of_x=-1;elseifx==0sign_of_x=0;elsedisp('Idontknow!')end27/4027依据表示式不一样取值,分别执行不一样语句switch

表示式0

case

表示式1

语句组1

case

表示式2

语句组2......

case

表示式m

语句组m

otherwise

语句组endswitch语句先计算表示式0值,然后将它依次与各个case指令后表示式值进行比较,当二者一样时,就执行对应语句组,然后跳出switch结构

switch后面表示式0值能够是一个数或字符串

otherwise指令能够不出现假如全部比较都不匹配时,执行otherwise后面语句组28/4028switch举例例:score=input('请输入你得分(A~E):');switchscorecase'A'disp('90—100');case'B'disp('80—89');case'C'disp('70—79');case'D'disp('60—69');otherwisedisp('Sorry!');end29/4029循环结构循环结构循环结构实现

for

语句

while

语句依据给定条件,重复执行指定语句30/4030for

循环变量

=

取值列表

循环体end

取值列表

通常是一个向量将取值列表中值依次赋给循环变量,直到全部取完,

循环结束for循环不要在循环体内改变循环变量值为提升代码运行效率,应尽可能提升代码向量化程度

for

循环31/4031for循环y=0;n=100;fork=1:ny=y+1/(2*k-1);end例:已知,当n=100时,求y值例:计算

s=1+3+10-28+30+50-12-8s=0;x=[1,3,10,-28,30,50,-12,-8];fork=x%将x

分量依次赋值给循环变量s=s+k;end32/4032循环语句能够嵌套使用假如预先知道循环次数,可采取

for循环

假如预先无法确定循环次数,则可使用while循环while循环while

条件表示式

循环体语句end当条件表示式值为真(非0)时,

执行循环体语句,

直到条件表示式值是假为止

while

循环表示式循环体语句真假33/4033while循环例:数论中一个有趣问题:3n+1

问题任取一个正整数,假如是偶数,用2除,假如是奇数,用3乘再加1,重复这个过程,直到所得到数为1。问:是否存在使该过程永不中止整数?n=input('请输入一个正整数n:');x=n;whilex>1ifmod(x,2)==0x=x/2;elsex=3*x+1;endfprintf('x=%d\n',x);endex4while01.m34/4034这个例子给出了计算eps

一个方法。这里我们用大写EPS,所以系统中eps

值不会被覆盖。当EPS=eps

时,条件仍成立;而当EPS=eps/2

时,条件不成立,退出循环,所以最终应有EPS=eps/2。k

用来统计循环次数。计算Matlab中eps值while编程示例k=0;EPS=1;while(1+EPS)>1EPS=EPS/2;k=k+1;end例:ex4while02.m35/4035循环终止循环中止跳出循环体,终止循环

break只能跳出一层循环结束本轮循环,执行下一轮循环break

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论