输入输出-暂停-switch_第1页
输入输出-暂停-switch_第2页
输入输出-暂停-switch_第3页
输入输出-暂停-switch_第4页
输入输出-暂停-switch_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

Matlab

编程入门(一)Matlab编程入门

Matlab

编程简介

Matlab作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算、符号计算、矩阵运算能力和丰富的绘图功能,同时也具有和C、FORTRAN

等高级语言一样进行程序设计。在Matlab

程序设计中,可以充分利用Matlab数据结构的特点,提高编程效率。利用Matlab

的程序控制功能,可以将有关Matlab

命令编成程序存储在一个文件中(M

文件),然后在命令窗口中运行该文件,Matlab

就会自动依次执行文件中的命令,直到全部命令执行完毕。用Matlab语言编写的程序称为M文件。

M文件是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。事实上,Matlab

提供的内部函数以及各种工具箱,都是利用Matlab

语言开发的M文件。用户也可以结合自己的工作需要,开发自己的程序或工具箱。

M文件根据调用方式的不同可以分为两类:

Script:脚本文件/命令文件没有输入参数,也不返回输出参数,也称为脚本文件。

Function:函数文件可以输入参数,也可返回输出参数。

M文件

M

文件以.m

为扩展名。命令文件

对于一些比较简单的问题,在指令窗中直接输入指令计算。

对于复杂计算,采用命令文件最为合适。MATLAB只是按文件所写的指令执行。

命令文件的特点是:命令文件的构成比较简单,只是一串按用户意图排列而成的MATLAB指令集合。命令文件运行后,所产生的所有变量都驻留在MATLAB基本工作空间(Baseworkspace)中,而且,所产生的所有变量均为全局变量,只要用户不使用清除指令(clear),MATLAB指令窗不关闭,这些变量将一直保存在基本工作空间中。函数文件

与脚本文件不同,函数文件犹如一个“黑箱”,把一些数据送进并经加工处理,再把结果送出来。MATLAB提供的函数指令大部分都是由函数文件定义的。

函数文件的特点是:

从形式上看,与脚本文件不同,函数文件的笫一行总是以“function”引导的“函数申明行”。从运行上看,与脚本文件运行不同,每当函数文件运行,MATLAB就会专门为它开辟一个临时工作空间,称为函数工作空间(Functionworkspace)。当执行文件最后一条指令时,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。MATLAB允许使用比“标称数目”较少的输入输出变量,实现对函数的调用。

M

文件是一个文本文件,可以用任何文本编辑器来建立和编辑,通常使用Matlab

自带的M

文件编辑器。M文件的建立与打开新建一个M文件菜单操作(FileNewM-File

)命令操作

(edit

M文件名)命令按钮

(

快捷键

)打开已有的M文件菜单操作

(FileOpen

)命令操作(edit

M文件名)命令按钮

(

快捷键

)双击M

文件在命令窗口中输入f2cs,即可执行该M

文件。例:编写一个命令文件将f转化为c命令文件举例clear;%清除当前工作空间中的变量f=input('Pleaseinputf:');c=5*(f-32)/9;fprintf('cis%g\n',c);新建一个M

文件

f2cs.m,内容如下:脚本文件运行后,文件中所产生的所有变量都驻留在Matlab当前工作空间,可以用whos

查看。关系运算<小于<=小于等于>大于>=大于等于==等于~=不等于比较大小,如果结论是真则返回1,否则返回0注意==与=

的区别关系操作符能用来比较两个标量,或两个同样大小的数组,或用来比较一个数组和一个标量关系运算符关系运算符的运算法则为:(1)当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。(2)当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。

(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。关系运算例:关系运算举例>>

2+2==4>>

2>3>>

A=[135;206];>>

B=[310;246];>>

A>=B>>

x=[50;42];>>

x<4例:

产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。解:

(1)生成5阶随机方阵A。

A=round((90-10)*rand(5)+10)

(2)判断A的元素是否可以被3整除。

P=rem(A,3)==0

其中,rem(A,3)是矩阵A的每个元素除以3的余数矩阵。此时,0被扩展为与A同维数的零矩阵,P是进行等于(==)比较的结果矩阵。&与|或~非xor(x,y)异或逻辑运算逻辑运算符&&与(Short-circuitAND)||或(Short-circuitOR)A

&

B

等价于and(A,B)A

|

B

等价于or(A,B)

~

A

等价于not(A)运算对象与或非异或ABA&BA|B~AXor(A,B)000010010111100101111100逻辑运算表all(x)

如果向量X

中所有元素都非零,则返回1,

否则返回0若x为矩阵,则any

和all

按列运算,返回一个0-1向量逻辑运算相关函数any(x)如果向量X

中存在非零元素,则返回1,

否则返回0isfinite元素为有限值,返回真值1isinf元素为无穷大,返回真值1isnan元素为不定值,返回真值1isreal参量无虚部,返回真值1isstr参量为一个字符串,返回真值1isempty参量为空,返回真值1一些测试函数括号幂,点幂正号,符号,逻辑非乘,除,点乘,点除加,减冒号运算关系运算&|&&||运算优先级高低程序控制结构有三种:顺序结构、选择结构和循环结构。任何复杂的程序都由这三种基本结构组成。顺序结构M文件控制流按排列顺序依次执行各条语句,直到程序的最后。这是最简单的一种程序结构,一般涉及数据的输入输出、数据的计算或处理等。例:A=input('PleaseinputA:')数据的输入:inputA=input(提示信息)其中提示信息为字符串,该命令要求用户输入A

的值(可以是数或字符串)数据输入inputA=input(提示信息,'s')注:此时输入的字符串不要加单引号!如果是输入字符串,也可以使用下面的方法name=input('What''syourname?','s')例:disp(X)输出变量X的值,可以是数值矩阵或字符串>>

B=[123;456;789];>>

disp(B)数据输出disp数据的输出:disp>>

A='Hello,Tom!';>>

disp(A)例:数据输出fprintffprintf(fid,format,variables)按指定的格式将变量的值输出到指定的文件数据的输出:fprintf

fid

为文件句柄,若缺省,则将变量的值输出到屏幕上

format

用来指定数据输出时采用的格式,常见的有%d(整数)%e(实数:采用科学计数法形式)%f(实数:采用浮点数形式)%g(由系统自动选取上述两种格式之一)

%s(输出字符串)

format

中还可以使用一些特殊格式,如:\n

(换行)\b

(退格)

\\

(反斜杆)

%%

(百分号)

数据输出fprintf>>

a='Hello';b=2.4;c=100*pi;>>

fprintf('a=%s,b=%f,c=%e\n',a,b,c)例:

format

中的输出格式要与输出变量一一对应

可以没有输出变量>>

fprintf('

TodayisMonday\n')例:pause

程序的暂停:pausepause或

pause(n)若想强行终止程序的运行,可以使用Ctrl+c其中n

是延迟时间,以秒为单位;若缺省,则将暂停程序,直到用户按任意键后继续

pauseoff

屏蔽程序中所有

pause

的作用

pauseon

打开

pause

的作用选择结构是根据给定的条件成立或不成立,分别执行不同的语句。Matlab

用于实现选择结构的语句有if

语句和switch

语句。选择结构单分支结构ifexpression

(条件)

statements(语句组)endif条件语句ifexpression(条件)

statements1(语句组1)else

statements2(语句组2)end双分支结构ifexpression1(条件1)

statements1(语句组1)elseifexpression2(条件2)

statements2(语句组2)......

elseifexpressionm(条件m)

statementsm(语句组m)else

statements(语句组)end多分支结构if条件语句例输入三角形的三条边,利用海伦公式求面积。

程序:

A=input('请输入三角形的三条边:');ifA(1)+A(2)>A(3)&A(1)+A(3)>A(2)&A(2)+A(3)>A(1)

p=(A(1)+A(2)+A(3))/2;s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));disp(s);else

disp('不能构成一个三角形。')end程序示例运行:请输入三角形的三条边:[456]9.9216根据表达式的不同取值,分别执行不同的语句。switchexpression(表达式)casevalue1(表达式1)

statement1(语句组1)casevalue2(表达式2)

statement2(语句组2)......casevaluem

(表达式m)

statementm(语句组m)otherwise

statement(语句组)endswitch语句

Matlab首先计算expression的值,然后将它依次与各个case指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出switch结构。

switch后面的表达式expression的值可以是一个标量或字符串。switch语句

otherwise指令可以不出现。如果所有的比较结果都为假,则执行otherwise后面的语句组,然后跳出switch结构。例

某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):

price<200没有折扣

200≤price<5003%折扣

500≤price<10005%折扣

1000≤price<25008%折扣

2500≤price<500010%折扣5000≤price14%折扣输入所售商品的价格,求其实际销售价格。程序示例

程序如下:price=input('请输入商品价格');switch

fix(price/100)

case{0,1}%价格小于200rate=0;

case{2,3,4}%价格大于等于200但小于500rate=3/100;

casenum2cell(5:9)%价格大于等于500但小于1000rate=5/100;

casenum2cell(10:24)%价格大于等于1000但小于2500rate=8/100;

casenum2cell(25:49)%价格大于等于2500但小于5000rate=10/100;

otherwise

%价格大于等于5000rate=14/100;endprice=price*(1-rate)%输出商品实际销售价格程序示例循环结构是按照给定的条件,重复执行指定的语句。Matlab用于实现循环结构的语句有for语句和while语句循环结构forvariable=expression

statement(循环体)end循环变量

表达式expression

可以是行向量,也可以是矩阵。执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。for循环clear;y=0;n=100;fork=1:n

y=y+1/(2*k-1);end例:已

温馨提示

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

评论

0/150

提交评论