MATLAB程序设计与应用上 - 图文

发布时间 : 星期四 文章MATLAB程序设计与应用上 - 图文更新完毕开始阅读

第二章 数变、量和表达式

程序设计与运行结果:

>> clear

a=[0 1 1 0]; b=[1 1 0 0]; X= xor(a,b) X =

1 0 1 0 程序说明:

1. 矩阵a 与b以xor(异或)逻辑运算。

2. 若相应的两个数一个为0,一个非0,则结果为1,否则为0。

2-2 常量和变量

2-2-1 数字量

量可以分为常量和变量。要正确理解数字量,就应注意区分下列概念,即标量与矢量、数组与矩阵、复数与虚数,在这里我们对这3组概念只进行简单的介绍。

就所有的物理量而言,可分为标量与矢量。所谓标量就是只有大小而没有其他的含义,例如:5个苹果,体重75kg等。而矢量是既有大小又有方向,两者缺一不可。若有流量以6?10km/h的速度撞向地球,这时速度就是一个矢量,它除描述了速度大小外,还说明了速度的方向,即向地球飞来。另外,矢量与标量不同还表现在,标量可以直接利用四则运算计算,而矢量则不可以。

数组与矩阵量是完全不同的两个概念,所谓数组是由一连串具有逻辑关系的标量组成的,数组可以具有行或列的性质,或是同时具有行与列的性质,但它仍然是标量。矩阵则不然,矩阵是矢量的一种延伸,它们之间是一种矢量的组合。

在MATLAB中,数组与矩阵的计算方法是完全不同的,大家应多加注意。 复数的定义是:

5Z?a?bi

式中a是实部,b是虚部,就是虚数。 复数的格式如下:

复数=常数+常数i

或 复数=常数+常数j

2-2-2 字符量

在MATLAB的编程中我们还会用到字符变量和字符串变量,这个量表示一个字符或者一串字符。其定义格式如下:

chr=?字符? string=?字符串? 例:2-10

给出一个定义字符变量和字符串变量的例子。 程序设计与运行结果:

15

MATLAB程序设计与实例应用

>> clear

chr='H' % 定义字符变量 chr = H

>> string='abcdEFG' % 定义字符串变量 string = abcdEFG 程序说明:

注意,不能用数字量的运算对字符变量和字符串变量进行各种运算,否则会得到错误的结果。

2-2-3 变量的基本规定和运算

要表达一个数列或矩阵,均必须以变量的形式来表示。变量的表达格式如下:

变量=表达式

变量在MATLAB中的定义如下: 1. 变量的第一个字母必须是英文。 2. 变量可以由数字,字母或“_”组成。 其中注意:

? MATLAB只识别变量名称的前18个字符,后面的字符无效。

? 任何的变量均被视为一个矩阵,单一的数也不过是矩阵的最简单的形式。 ? 凡以“i”或“j”结尾的变量,均以复数处理,如a=5i表示a=0 + 5.0000i。

在Command Windows的状态下,所有的变量均存在于工作区(Workspace)中,我们只要输入“who”就可以看到工作区中所有曾经设置并保存至今有效的变量。如果输入“whos”,不但会显示所有的变量,而且会将该变量的名称、性质等都显示出来。“what”则会显示目录中的文件。例如,我们在工作区中还保留着a=5i、chr='H'和string='abcdEFG',则我们可以得到:

>> who

Your variables are: a chr string >> whos

Name Size Bytes Class

a 1x1 16 double array (complex) chr 1x1 2 char array string 1x7 14 char array Grand total is 9 elements using 32 bytes >> what

M-files in the current directory C:\\MATLAB701\\work Untitled6 var

清除已存在的变量用 “clear”命令,清除图形用“clf”,清除坐标用“cla”,如果是针对某一特殊的变量、图形、坐标,可直接在命令后跟相关的变量、图形、坐标。如要清除工作区中的变量a,可

16

第二章 数变、量和表达式

以用命令

>> clear a 例:2-11

设a=1+2i,b=3+4i,求c=a + b的值? 程序设计与运行结果:

>> clear a=1+2i; b=3+4i; c=a+b c =

4.0000 + 6.0000i 程序说明:

1. 这个例子说明在复数相加中,实数部分与实数部分相加,而虚数部分与虚数部分相加。 2. 若没有特殊的声明,MATLAB在复数的运算中自动取到小数点后四位为有效数字。 例:2-12

在MATLAB中直接键入i会有什么结果? 程序设计与运行结果:

>> clear i ans =

0 + 1.0000i 程序说明:

当在MATLAB中直接键入i时,MATLAB系统会直接辨认出i值,认为其为虚数,所以出现上面的结果。于是,当我们把i或j当作一般的变量赋值时,MATLAB将不再把它们视为复数的虚数部分,而当作一般的变量来处理。如果输入i=100,则系统认为变量i的值为100。因此,建议i或j这两个字符不要作为一般变量使用,以免系统在做复数运算时由于混淆不清而造成错误。

例:2-13

在MATLAB命令窗口运行A=[1,2;3,4]+i*[5,6;7,8],看结果如何? 程序设计与运行结果:

>> clear

A=[1,2;3,4]+i*[5.,6;7,8] A =

1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i 程序说明:

常会有很多人发生概念上的混淆,事实上A是一个矩阵,并且是复数矩阵。 例:2-14

17

MATLAB程序设计与实例应用

如果将A=[1,2;3,4]+i*[5,6;7,8]的*去掉A=[1,2;3,4]+i [5,6;7,8],看结果如何? 程序设计与运行结果:

>> clear

A=[1,2;3,4]+i[5,6;7,8] ??? A=[1,2;3,4]+i[5.,6;7,8] |

Error: Unbalanced or misused parentheses or brackets. 程序说明:

这种矩阵是毫无意义的,因为在右边的式子i[5.,6;7,8]中,这种写法没有明确的定义 [5,6;7,8]与i的关系。

注意我们平时把“a?b”写作ab,在MATLAB中这种运算的书写方式是行不通的,必须明确写出a和b的运算符。 例:2-15

变量的有效数字可以依据需要不同,使用format命令来定义。format缺省值是short,显示小数后面4位有效数字。而format long其精度可达到小数点后面15位。分别用format short和format long显示pi,即圆周率?。 程序设计与运行结果:

>> clear format short pi ans = 3.1416 >> format long pi ans =

3.14159265358979 程序说明:

如果不输入format short显示结果仍然一样,但输入format long后显示结果就是长格式了,如果要回到原来缺省值时的情况还需再输入format short。

例:2-16

设a=22/7;则format short如何? 程序设计与运行结果:

>> clear format short a=22/7 a =

3.1429 程序说明:

18

联系合同范文客服:xxxxx#qq.com(#替换为@)