matlab编程入门基础_第1页
matlab编程入门基础_第2页
matlab编程入门基础_第3页
matlab编程入门基础_第4页
matlab编程入门基础_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

数学实验Matlab

编程入门(一)Matlab

编程入门

Matlab

作为一种广泛应用于科学计算的工具软件,不仅具有强大的数值计算能力和丰富的绘图功能,同时也可以与C、FORTRAN等高级语言一样进行程序设计利用Matlab

的程序控制功能,将相关Matlab

命令编成程序存储在一个文件中(M文件),然后在命令窗口中运行该文件,Matlab

就会自动依次执行文件中的命令,直到全部命令执行完毕在Matlab

程序设计中,要充分利用Matlab

数据结构的特点,提高编程效率

Matlab

编程简介

M文件介绍主要内容

Matlab

编程基础算术运算、关系运算、逻辑运算控制结构:顺序结构、选择结构、循环结构用Matlab

语言编写的程序称为M文件

M文件以.m

为扩展名M文件是由若干Matlab

命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法

M文件分类(根据调用方式的不同)

Script:脚本文件/命令文件

Function:函数文件M文件

M文件介绍可以直接运行的M文件

M文件的创建的与编辑

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

自带的M文件编辑器M文件新建一个M文件菜单操作(FileNewM-File

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

(FileOpen

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

(快捷键)双击M文件在命令窗口中输入fcs,即可执行该M文件例:编写M文件,将华氏温度转化为摄氏温度:编程示例clear;%清除当前工作空间中的所有变量f=input('InputFahrenheittemperature:');c=5*(f-32)/9;fprintf('Thecentigradetemperatureis%g\n',c);新建一个M文件

fcs.m,内容如下:

M文件运行所产生的变量都驻留在Matlab

当前工作空间百分号是注释符

M文件必须在当前工作目录下或已存的搜索路径下才能运行

M文件介绍主要内容

Matlab

编程基础算术运算、关系运算、逻辑运算控制结构:顺序结构、选择结构、循环结构关系运算<小于<=小于等于>大于>=大于等于==等于~=不等于比较大小,如果结论是真则返回1,否则返回0注意=

=与=

的区别关系操作符可以比较两个同样大小的数组,或用来比较一个数组和一个标量,在后一种情况,标量和数组中的每一个元素相比较,比较结果与数组大小一样关系运算符例:关系运算举例>>

2+2==4>>

2>3>>

A=[135;206];>>

B=[310;246];>>

A>=B>>

x=[50;42];>>

x<4&与(ElementwiseAND)|或(ElementwiseOR)~非xor(x,y)异或逻辑运算逻辑运算符&&与(Short-circuitAND)||或(Short-circuitOR)A

&

B

等价于and(A,B)A

|

B

等价于or(A,B)

~

A

等价于not(A)逻辑运算逻辑运算符Matlab中的逻辑运算"&&"与"&","||"与"|"的区别如下:A&B(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。(2)A和B可以为矩阵(e.g.A=[10],B=[00])。A&&B(1)首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。(2)A和B不能是矩阵,只能是标量。"|"与“||”同理。逻辑运算逻辑运算符A&&B首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。这种用法非常有用,如果A是一个计算量较小的函数,B是一个计算量较大的函数,那么首先判断A对减少计算量是有好处的。另外这也可以防止类似被0除的错误:

flag=denum~=0&&num/denum>10ifflag

%DoSomething

end

上面的表达式就可以防止denum等于0的情况。当然,如果你希望在判断的时候,对A和B表达式都进行计算,就应该使用标准的&或者|。Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short-circuit形式。

逻辑运算逻辑运算符ifflag=denum~=0&&num/denum>10

%DoSomething

end

ifflag=denum~=0&num/denum>10

%DoSomething

end

执行的结果一样

运算对象与或非异或ABA&BA|B~AXor(A,B)000010010111100101111100逻辑运算表在Matlab

中,0表示“假”,非零表示“真”all(x)

如果向量X

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

否则返回0若x

为矩阵,则any

和all

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

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

否则返回0isfinite(x)若x

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

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

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

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

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

为空,返回真值1一些测试函数>>

isfinite(5)>>

isinf(5)括号幂,点幂正号,负号,逻辑非乘,除,点乘,点除加,减冒号运算关系运算&|&&||运算优先级高低

M文件介绍主要内容

Matlab

编程基础算术运算、关系运算、逻辑运算控制结构:顺序结构:数据输入输出(input、disp、fprintf

等)选择结构:if语句、switch语句循环结构:for循环、while循环程序控制结构有三种:

顺序结构、选择结构和循环结构

任何复杂的程序都由这三种基本结构组成M文件控制流按排列顺序依次执行各条语句,直到程序的最后这是最简单的一种程序结构,一般涉及数据的输入输出、数据的计算或处理等顺序结构例:A=input('PleaseinputA:')数据的输入:inputA=input(提示信息)其中提示信息为字符串,该命令要求用户输入A

的值(可以是数或字符串)inputname=input('What''syourname?')例:

输入字符串时必须带单引号单引号的输出disp(X)输出变量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(输出字符串)

\n

(换行)

\t

(制表符)

\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

语句。选择结构单分支结构ifexpr(条件)

语句组Aendif条件语句ifexpr(条件)

语句组Aelse

语句组Bend双分支结构ifexpr1(条件1)

语句组Aelseif

expr2(条件2)

语句组B......

elseif

exprm(条件m)

语句组melse

语句组end多分支结构if条件语句根据表达式的不同取值,分别执行不同的语句switchexpr(表达式)casevalue1(表达式1)

语句组1casevalue2(表达式2)

语句组2......casevaluem(表达式m)

语句组motherwise

语句组endswitch语句

Matlab

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

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

otherwise指令可以不出现如果所有的比较结果都为假,则执行otherwise后面的语句组,然后跳出switch结构关于switch语句的几点注解:选择结构的语法格式与C语言对照MATLAB:ifa==bifc~=d

matlab=c;else

matlab=~c;

pascal=matlab;endendC:if(a==b){if(c!=d)

matlab=c;else{

matalb=!c;

pascal=matlab;}}MATLAB:

C:switch表达式(标量或字符串)switch表达式(标量或字符串))case常量表达式1{case常量表达式1:

语句1

语句1;break;

case常量表达式2

case常量表达式2:

语句2语句2;break;

……

otherwise/defaultdefault:语句n

语句n}end选择结构的语法格式与C语言对照循环结构是按照给定的条件,重复执行指定的语句。Matlab

用于实现循环结构的语句有for语句和while语句循环结构forvar

=

expr

循环体end循环变量

表达式expr

可以是行向量,也可以是矩阵for循环clear;y=0;n=100;fork=1:n

y=y+1/(2*k-1);end例:已知,当n=100时,求y的值循环语句可以嵌套使用while循环whileexpr(条件)

循环体end不能在for循环体内改变循环变量的值为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免

for循环的使用如果预先就知道循环的次数,则可以采用for循环;否则,如果预先无法确定循环的次数,则可以使用while循环。循环结构的语法格式与C语言对照

MatlabCwhilea==b

while(a==b)

c=c+1;

{c+=1;}end

while循环的格式为:

for循环的格式为:

MatlabCfori=1:2:100for(i=1;i<=100;i=i+2)c(i)=c(i)+1;{endc(i)=c(i)+1;

}MATLAB中循环变量的步长缺省值是1。步长可以在正实数或负实数范围内任意指定,循环变量的值大于(步长为负数时小于)终止值时,循环结束。

循环结构的语法格式与C语言对照

break

continue

break

语句用于终止循环的执行,即跳出最内层循环

continue

语句用于结束本次循环,进行下一次循环

break

和continue

一般与if

语句配合使用其它流控制语句

return

return

语句用于退出正在运行的脚本或函数,通常用在函数文件中编程示例

数论中的一个有趣问题:3n+1

问题:任取一个正整数,如果是偶数,用2除,如果是奇数,用3乘再加1,反复这个过程,直到所得到的数为1。问:是否存在使该过程永不中止的整数?

例:while

1

n=input('Pleaseentern(nonpositivequit):');

if

n<=0,

break;end

nt=n;

while

n>1

if

rem(n,2)==0

n=n/2;

else

n=3*n+1;

end

fprintf('\nn=%d',n);

温馨提示

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

评论

0/150

提交评论