第2章 MATLAB程序设计基础Word下载.docx
《第2章 MATLAB程序设计基础Word下载.docx》由会员分享,可在线阅读,更多相关《第2章 MATLAB程序设计基础Word下载.docx(53页珍藏版)》请在冰豆网上搜索。
其它命令(如绘图等)
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
(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阶的全为1的矩阵
A-B%矩阵A与矩阵B相减
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<
B%比较每个元素的大小
00
01
A>
2%矩阵和标量进行关系运算
11
>
C=[123;
321;
213];
D=[223;
333;
111];
C==D
011
100
010
C~=D
101
C>
=D
111
2.4.3逻辑运算符
MATLAB里共有4个逻辑运算符:
与&
或|
非~
逻辑异或XOR
和关系运算符一样,除了逻辑运算符的一个运算数为长方阵或向量时,另一个运算数可为标量,其余情况下均要求矩阵同维。
逻辑运算符也是对运算数的相应元素一一运算,最后返回一个0-l矩阵。
当逻辑表达式的值为真时,返回1,否则返回0。
下面为这4个逻辑运算符的使用例子:
A=[1,0;
2,3];
%输入一个矩阵
B=[1,1;
2,2];
A&
B%与运算
11
A|B%或运算
~A%非运算
01
XOR(A,B)%逻辑异或
x=3;
x|(XOR(A,B))
C=[-101;
30-3;
70-7];
D=1;
xor(C,D)
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)
0
0,3;
0,4];
any(A)
C=[2,0,1;
5,inf,NaN];
isfinite(C)
isinf(C)
000
另外,利用函数logical可以将数字值转换为逻辑值
函数logical的调用格式:
K=logical(A)
说明:
返回能够用于逻辑索引或逻辑测试的矩阵
A=rand(4)%生成一个4阶随机矩阵
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阶单位矩阵
1000
0100
0010
0001
A(B)%返回