第2章 MATLAB程序设计基础.docx

上传人:b****6 文档编号:2980949 上传时间:2022-11-16 格式:DOCX 页数:53 大小:97.57KB
下载 相关 举报
第2章 MATLAB程序设计基础.docx_第1页
第1页 / 共53页
第2章 MATLAB程序设计基础.docx_第2页
第2页 / 共53页
第2章 MATLAB程序设计基础.docx_第3页
第3页 / 共53页
第2章 MATLAB程序设计基础.docx_第4页
第4页 / 共53页
第2章 MATLAB程序设计基础.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

第2章 MATLAB程序设计基础.docx

《第2章 MATLAB程序设计基础.docx》由会员分享,可在线阅读,更多相关《第2章 MATLAB程序设计基础.docx(53页珍藏版)》请在冰豆网上搜索。

第2章 MATLAB程序设计基础.docx

第2章MATLAB程序设计基础

第二章程序设计基础

MATLAB既是一种运行环境,又是一种编程语言。

MATLAB的编程语言是一种以矩阵和数组为基本单位的编程语言,具有结构化和面向对象的特点。

MATLAB中的所有数据都是以矩阵形式存储的,而不是像其他编程语言那样,是对单独的一个数据进行操作,因此MATLAB的编程代码非常直观,开发环境也更加简洁。

本章重点介绍MATLAB的基本程序设计和设计技巧

2.1MATLAB的基本程序设计原则

MATLAB语言简洁紧凑,使用起来极为方便灵活,它的运算符也十分丰富,因此它的程序的写法也非常简单,读者只要掌握以下几个原则就可以开始编写程序了:

(1)设置完整的路径,最好把当前的处理位置设定为CurrentDirectory

(2)参数值要集中放在程序的开始部分,便于程序维护

(3)若在每行程序的最后输入分号‘;’,则执行时程序行不会显示在屏幕上

如果不输入分号,执行的程序行会显示在屏幕上

(4)符号‘%’后面的内容是程序的注解,不作为指令运行

(5)遇到不明白的指令,多使用在线帮助命令,或系统演示示例

(6)程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作

(7)注意变量的定义

(8)留意各种指令的书写格式

MATLAB程序的基本组成部分如下:

%说明部分

清除命令(可选)

定义变量(局部变量和全局变量)

按照顺序行执行的命令语句

控制语句开始

控制语句体

……

控制语句结束

其它命令(如绘图等)

2.2工作路径的正确设置

对于用户程序中使用的文件名和变量名,系统按照以下顺序搜索:

查找对象是否是工作空间的变量

查找对象是否是系统的内部函数

查找对象是否是在系统的当前目录下的文件

按照系统设置的搜索路径顺序查找用户对象

因此,必须设置好MATLAB的工作路径,不然很可能无法读取某些系统文件或数据而导致程序无法执行。

路径设置有两种方法,一是在命令窗口下使用cd指令,象DOS命令那样直接更改工作路径。

如果目前程序放在D盘的my_pro中,执行MATLAB前最好先把路径设到D:

\my_pro中,以避免不必要的错误,例如要把工作路径设到D:

\my_pro下,可以执行:

cdD:

\my_pro

另一种方法是在菜单中选择File->SetPath,就会出现SetPath窗口,然后单击‘AddFolder’按钮就出现如图2-1所示的‘浏览文件夹’窗口:

图2-1浏览文件夹窗口

在上面的窗口中选中D盘中的Fa然后单击‘确定’,就又回到如图2-2所示的setpath窗口,此时在‘MATLABsearchpath’框中,就能看到第一行就是我们刚刚添加的工作路径,再单击‘close’按钮回到命令窗口。

利用此方法,也可以设置用户想要设置的路径。

图2-2setpath窗口

2.3常量和变量

MATLAB中使用的数据有常量和变量。

作为纯量的实数常量,类似于C语言中的整型常量和实型常量,常量的表示方法一般采用十进制数字表示,可以带正负号和小数点;当然也可采用科学记数法。

如:

12.50.00332e-7pi2+3i等都是MATLAB的合法常量。

这里的2e-7表示2

10

,2+3i是复数常量,它是由实数与虚数单位i组成。

MATLAB中的变量一般无须事先定义。

一个程序中的变量以其名称在操作语句中第一次合法出现而定义。

如果这个变量已经存在,那么MATLAB将改变它的内容,如a=2.5这里定义了一个变量a并给它赋值2.5;如果再输入a=3,那么变量a的值就变为3了。

MATLAB中的变量命名应该遵循以下规则:

(1)变量名必须以字母开头,后面可以是任意的字母,数字或下划线

(2)MATLAB的变量名有效的最大长度是31

(3)MATLAB的变量要区分大小写,如:

MY_NAME,My_name,my_name分别表示不同的变量

另外,MATLAB设置了一些特殊的变量和常量。

它们是:

(1)ANS——缺省变量名,以操作中的最近应答作为它的值。

例如:

>>x=2^3%输入变量名x

x=

8

>>2^3%不输入任何变量名

ans=%缺省变量名为ans

8

(2)pi——圆周率

例如:

>>x=pi;

>>y=cos(x)

y=

-1

(3)i或j——虚数单位

例如:

>>x=2+i;

>>y=1-i;

>>z=x*y

z=

3.0000-1.0000i

(4)eps——浮点数的相对误差,将其加到数值1上以后,可得到系统所能表示的大于1的最小值。

其数值量级为10

例如在命令窗口中输入eps,其结果为:

ans=

2.2204e-016

(5)NaN或nan)代表不定值(或称非数)

INF代表数学中的正无穷大

(6)NARGIN函数输入参数的个数

NARGOUT函数输出参数的个数

(7)version表示MATLAB的版本

2.4程序的运算符

MATLAB的运算符可分为三类:

算术运算符、关系运算符和逻辑运算符。

其中算术运算符的优先级最高,其次是关系运算符,再其次是逻辑运算符。

下面将分别介绍这三类运算符和逻辑函数。

2.4.1算术运算符

加法+

减法-

乘法*

除法/

左除\(主要用于矩阵的除法)

乘方^

执行时的优先法则按照以下规则:

(1)表达式从左到右执行

(2)乘方运算具有最高的优先级

(3)乘法和除法运算具有相同的次优先级。

加法和减法具有相同的最低优先级。

(4)括号可以改变优先次序,括号由最内层的括号向外执行

例如:

>>A=[123;456;789];%输入一个3

3的矩阵

>>b=10;

>>A+b%矩阵A与标量b相加

ans=

111213

141516

171819

>>B=ones(3);%输入一个3

3阶的全为1的矩阵

>>A-B%矩阵A与矩阵B相减

ans=

012

345

678

>>S=A*B%矩阵的乘法

S=

666

151515

242424

>>r=3;

>>U=A.^3%矩阵的乘方

U=

1827

64125216

343512729

>>X=[23;13];

>>Y=[14;79];

>>Z=[25;68];

>>W=2*X+Y^3-Z%按照顺序执行

W=

311477

8291259

>>W1=(2*X+Y)^3-Z%先计算2*X+Y,接着计算它的3次方,最后减去Z

W1=

23734145

37296517

>>W2=2*(X+Y)^3-Z

%先计算X+Y,接着计算它的3次方,然后再乘以2,最后减去Z

W2=

20683425

39146472

2.4.2关系运算符

关系运算符对于程序的流程控制非常有用,在MATLAB的循环和条件控制中经常使用。

MATLAB里共有6个关系运算符:

小于<小于等于<=

大于>大于等于>=

等于==不等于~=

注意:

(1)所有关系运算符连接的两个运算数必须是同维、每维同大小的

(2)对于长方形矩阵和向量,两个运算数或者同维、同大小,或者其中一个为标量

(3)有一个运算数是标量时,关系运算符把标量和另一个运算数的每个运算进行比较。

(4)对于大小相同的两个矩阵,对它们进行关系运算时,是对相应的每一个元素进行比较,如果能够满足指定的关系,则返回1,否则返回0。

例如:

>>A=[1,2;3,4]%输入一个矩阵(二维数组)

A=

12

34

>>B=[1,0;3,5]%输入一个矩阵(二维数组)

B=

10

35

>>A

ans=

00

01

>>A>2%矩阵和标量进行关系运算

ans=

00

11

>>C=[123;321;213];

>>D=[223;333;111];

>>C==D

ans=

011

100

010

>>C~=D

ans=

100

011

101

>>C>=D

ans=

011

100

111

2.4.3逻辑运算符

MATLAB里共有4个逻辑运算符:

与&

或|

非~

逻辑异或XOR

和关系运算符一样,除了逻辑运算符的一个运算数为长方阵或向量时,另一个运算数可为标量,其余情况下均要求矩阵同维。

逻辑运算符也是对运算数的相应元素一一运算,最后返回一个0-l矩阵。

当逻辑表达式的值为真时,返回1,否则返回0。

下面为这4个逻辑运算符的使用例子:

>>A=[1,0;2,3];%输入一个矩阵

>>B=[1,1;2,2];%输入一个矩阵

>>A&B%与运算

ans=

10

11

>>A|B%或运算

ans=

11

11

>>~A%非运算

ans=

01

00

>>XOR(A,B)%逻辑异或

ans=

01

00

>>x=3;

>>x|(XOR(A,B))

ans=

11

11

>>C=[-101;30-3;70-7];

>>D=1;

>>xor(C,D)

ans=

010

010

010

2.4.4常用的逻辑函数

MATLAB提供了一些逻辑运算函数,在这里介绍几个常见的函数

all(A)只要向量A中有一个非0元素,结果就是1;否则结果为0

any(A)当向量的元素全为0时,结果才是1,否则是0

isempty(x)判断向量是否为空

isfinite(x)对应x中有限大小元素的位置取1,其余元素取0

isinf(x)对应x中无穷大元素的位置取1,其余元素取0

isletter(x)对应x中英文字母的元素的位置取1,其余元素取0

以下是几个逻辑函数运算的例子:

>>A=[1,2,0,3,0,4];%输入一个行向量

>>all(A)

ans=

0

>>A=[1,2;0,3;0,4];%输入一个矩阵

>>all(A)

ans=

01

>>any(A)

ans=

11

>>C=[2,0,1;5,inf,NaN];

>>isfinite(C)

ans=

111

100

>>isinf(C)

ans=

000

010

另外,利用函数logical可以将数字值转换为逻辑值

函数logical的调用格式:

K=logical(A)

说明:

返回能够用于逻辑索引或逻辑测试的矩阵

例如:

>>A=rand(4)%生成一个4阶随机矩阵

A=

0.95010.89130.82140.9218

0.23110.76210.44470.7382

0.60680.45650.61540.1763

0.48600.01850.79190.4057

>>B=logical(eye(4))%生成一个4阶单位矩阵

B=

1000

0100

0010

0001

>>A(B)%返回

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1