《Matlab变量及数据类型.ppt》由会员分享,可在线阅读,更多相关《Matlab变量及数据类型.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数学实验Matlab 数据类型数据类型Matlab的变量及其赋值的变量及其赋值1 1 变量及其赋值变量及其赋值 变量是任何程序设计语言的变量是任何程序设计语言的基本元素基本元素之一。之一。Matlab Matlab 并不要求对所使用的变量进行事先声明,也不并不要求对所使用的变量进行事先声明,也不需要指定变量类型,需要指定变量类型,Matlab Matlab 会自动根据所赋予变量的值会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型。或对变量所进行的操作来确定变量的类型。在赋值过程中,如果变量已经存在,在赋值过程中,如果变量已经存在,Matlab Matlab 会用新会用新值代替旧值,
2、并以值代替旧值,并以新的变量类型代替旧的变量类型新的变量类型代替旧的变量类型。1.1 1.1 变量命名规则变量命名规则 变量名的第一个字母必须是英文字母,最多可包含变量名的第一个字母必须是英文字母,最多可包含3131个字符,英文、数字和下划线个字符,英文、数字和下划线。如:如:myvar201合法。合法。变量名中不得含空格、标点,但可以有下连符号变量名中不得含空格、标点,但可以有下连符号。如如:变量名变量名my_var_201合法的,且读起来更方便。合法的,且读起来更方便。而而my,var201不合法。不合法。变量名是对字母大小写敏感的变量名是对字母大小写敏感的。如如:变量变量myvar和和M
3、yVar是不同变量。是不同变量。sin是是MATLAB定义的正弦名,但定义的正弦名,但SIN、Sin等都不是。等都不是。1.2 1.2 矩阵及其元素的赋值矩阵及其元素的赋值 赋值就是把数赋予代表常量或变量的标识符。在赋值就是把数赋予代表常量或变量的标识符。在MATLABMATLAB中中,变量都代表矩阵。列矢量可被当作只有一列的矩阵;行矢量也变量都代表矩阵。列矢量可被当作只有一列的矩阵;行矢量也可被当作只有一个行的矩阵;标量应看作可被当作只有一个行的矩阵;标量应看作1 1 1 1阶的矩阵。阶的矩阵。赋值语句的一般形式为:赋值语句的一般形式为:变量表达式(或数)变量表达式(或数)1 1赋值要求赋值
4、要求在输入矩阵时,应遵循以下规则:在输入矩阵时,应遵循以下规则:整个矩阵的值应放在方括号整个矩阵的值应放在方括号 中;中;同一行中各元素之间以逗号同一行中各元素之间以逗号“,”或空格或空格“”分开;分开;不同行的元素以分号不同行的元素以分号“;”隔开。隔开。q 向量与矩阵的生成向量与矩阵的生成u 向量的生成向量的生成直接输入直接输入:a=1,2,3,4 冒号冒号运运算符算符a=1:4 =a=1,2,3,4b=0:pi/3:pi =b=0,1.0472,2.0944,3.1416c=6:-2:0 =c=6,4,2,0例例:注:注:冒号表达式可以产生一个行向量,一般格式是:冒号表达式可以产生一个行
5、向量,一般格式是:e1:e2:e3其中其中e1为初始值,为初始值,e2为步长,为步长,e3为终止值。为终止值。q 向量与矩阵的生成(续)向量与矩阵的生成(续)u 矩阵的生成矩阵的生成 直接输入直接输入:A=1,2,3;4,5,6;7,8,9 由向量生成由向量生成 由函数生成由函数生成例例:x=1,2,3;y=2,3,4;A=x,y,B=x;y例例:C=magic(3)在在MATLABMATLAB中,变量的元素(即矩阵元)用圆括号中,变量的元素(即矩阵元)用圆括号“()()”中的中的数字(也称为下标)来注明,一维矩阵(也称数组)中的元素用数字(也称为下标)来注明,一维矩阵(也称数组)中的元素用一
6、个下标表示,二维矩阵由两个下标数构成,以逗号分开。一个下标表示,二维矩阵由两个下标数构成,以逗号分开。3 3赋值技巧赋值技巧(1)(1)利用冒号利用冒号“:”给全行的元素赋值给全行的元素赋值(2)(2)利用行、列标注构成新的矩阵利用行、列标注构成新的矩阵4 4特殊矩阵和数组特殊矩阵和数组(1)(1)单位矩阵函数单位矩阵函数eye()函数功能:产生对主角线元素为函数功能:产生对主角线元素为1 1,其它元素为,其它元素为0 0的的单位矩阵。单位矩阵。eye()的调用格式如下:的调用格式如下:A=eye(n)返回一个返回一个n n阶单位矩阵;阶单位矩阵;A=eye(m,n)返回一个返回一个m n阶单
7、位矩阵,或阶单位矩阵,或A=eye(m,n);2 2变量的元素的标注变量的元素的标注(2)zeros函数、函数、ones函数、函数、rand以及以及randn函数函数A=zeros(n)返回一个返回一个n n阶零矩阵;阶零矩阵;A=zeros(m,n)返回一个返回一个m n阶零矩阵;阶零矩阵;(3)linspace函数和函数和logspace函数函数 linspace:线线性性向向量量生生成成函函数数。产产生生指指定定长长度度的的等等差差数数列,调用格式及其功能如下:列,调用格式及其功能如下:y=linspace(a,b):生生成成一一个个首首尾尾分分别别为为a和和b的的100个数(包含个数(
8、包含a、b)的行向量。)的行向量。y=linspace(a,b):生生成成一一个个首首尾尾分分别别为为a和和b的的n个个数数(包含(包含a、b)的行向量。)的行向量。(3)(3)linspace函数和函数和logspace函数函数 logspace:对对数数等等差差数数列列生生成成函函数数。产产生生指指定定长长度度的的对对数数等距数列,调用格式及其功能如下:等距数列,调用格式及其功能如下:y=logspace(a,b)在在1010a,a,1010b b 区区间间生生成成5050个个差差值值相相等等的的数,并返回数,并返回5050个数以个数以1010为底的幂组成的行向量。为底的幂组成的行向量。y
9、=logspace(a,b,n)在在1010a a,10,10b b 区区间间生生成成n个个差差值值相相等等的数,并返回的数,并返回n个数以个数以1010为底的幂组成的行向量。为底的幂组成的行向量。y=logspace(a,pi)在在1010a a,pi,pi区区间间生生成成5050个个差差值值相相等等的的数数,并并返返回回5050个个数数以以1010为为底底的的幂幂组组成成的的行行向向量量,常常用用于于数数字字信信号处理。号处理。【例例】调用调用linspacelinspace函数,生成一个首尾分别为函数,生成一个首尾分别为0 0和和100,包含包含100个数的等差数列。个数的等差数列。li
10、nspace(1,100)5 5MATLAB内部特殊变量和常数内部特殊变量和常数变量变量ans:临时变量,通常指示当前的答案。:临时变量,通常指示当前的答案。常常数数eps:表表示示浮浮点点相相对对精精度度;其其值值是是从从1.01.0到到下下一一个个最最大大浮浮点点数数之之间间的的差差值值。变变量量值值作作为为一一些些MATLAB函函数数计计算算的的相相对对浮点精度,按浮点精度,按IEEE标准,标准,esp=2=2-52-52近似为近似为2.22042.2204e-016-016。常常数数realmax:表表示示最最大大正正浮浮点点数数;任任何何大大于于该该值值的的运运算算都都溢溢出出。在在
11、具具有有IEEE标标准准浮浮点点格格式式的的机机器器上上,realmax略略小小于于21024 21024,近似为,近似为1.79771.7977e+308+308。常数常数realmin:表示最小正浮点数;任何小于该值的运算都表示最小正浮点数;任何小于该值的运算都溢出。在具有溢出。在具有IEEE标准浮点格式的机器上,标准浮点格式的机器上,realmin略小于略小于2 2-1024-1024,近似为,近似为2.22512.2251e-308-308。常常数数pi:表表示示圆圆周周率率 =3.1415926535897.=3.1415926535897.。表表达达式式4*4*atan(1)(1)
12、和和imag(log(-1)产生相同的值产生相同的值。常常数数Inf:代代表表正正无无穷穷大大,一一般般被被0 0除除或或溢溢出出则则产产生生无无穷穷大大结结果果。如如2/02/0,210000210000均均产产生生结结果果:Inf;而而log(0)产产生生结结果果:-Inf。虚数单位虚数单位i,j:表示复数虚部单位,相当于表示复数虚部单位,相当于 。NaN:表表示示非非数数值值。如如当当Inf-Inf,Inf/Inf,0*Inf,0/0均产生该结果。均产生该结果。n数值类型包括有符号整数类型、无符号整数类型、数值类型包括有符号整数类型、无符号整数类型、单精度浮点类型和双精度浮点类型,如图所
13、示。单精度浮点类型和双精度浮点类型,如图所示。6复数的赋值方式复数的赋值方式 MATLABMATLAB的的每每一一个个元元素素都都可可以以是是复复数数,实实数数是是复复数数的的特特例例。复数的虚数部分用复数的虚数部分用i i或或j j表示。表示。对复数矩阵有两种赋值方法:对复数矩阵有两种赋值方法:(1)(1)可将矩阵元逐个赋予复数可将矩阵元逐个赋予复数 (2)(2)将矩阵的实部和虚部分别赋值:将矩阵的实部和虚部分别赋值:7 7变量检查变量检查 在在程程序序调调试试或或变变量量的的赋赋值值过过程程,往往往往需需要要检检查查工工作作空空间间中中的的变变量量、变变量量的的阶阶数数以以及及变变量量赋赋
14、值值内内容容。在在检检查查变变量量及及其其阶阶数数等等内内容容时时,既既可可用用工工作作空空间间窗窗口口,也也可可在在命命令令窗窗口口使使用用who或或whos命命令令来来完完成成检检查查。当当查查看看某某变变量量的的赋赋值值情情况况,可可在在命命令令窗窗口直接键入该变量名回车即可。口直接键入该变量名回车即可。WHO lists the variables in the current workspace.whoYour variables are:A ans b WHOS lists more information about each variable.2 2 运算符与复数运算运算符与复
15、数运算 算术运算符:算术运算符:进行数值计算。进行数值计算。关系运算符:关系运算符:比较两个操作数的大小。比较两个操作数的大小。逻辑运算符:逻辑运算符:进行逻辑运算。进行逻辑运算。2.1 2.1 算术运算符算术运算符(1)(1)矩阵加减法矩阵加减法“”:AB 功功能能:两两矩矩阵阵对对应应元元素素相相加加减减。因因此此,A A和和B B两两矩矩阵阵必必须须有有相相同同的的大大小小,或或其其中中之之一一为为标标量量,标标量量可可以以与与任任意意大大小小的的矩矩阵阵相相加。加。(2)(2)矩阵相乘矩阵相乘“*”:A*B 功能:功能:C=A*BC=A*B为两矩阵线性代数的乘积,即为两矩阵线性代数的乘
16、积,即(3)(3)矩阵元素按位相乘矩阵元素按位相乘“.*”.*”:A.*B 功功能能:矩矩阵阵A和和B的的对对应应元元素素相相乘乘;因因此此,A A和和B B必必须须大大小小相相同同,或其中之一为标量。或其中之一为标量。(4)(4)矩阵右除矩阵右除“B/A”与左除与左除“AB”如如果果A为为一一非非奇奇异异矩矩阵阵,则则B/A与与AB可可通通过过A的的逆逆矩矩阵阵与与B矩阵得到:矩阵得到:B/A=B*inv(A);AB=inv(A)*B。(8)(8)矩阵转置矩阵转置“”A表表示示矩矩阵阵A的的线线性性代代数数转转置置。对对于于复复矩矩阵阵,表表示示复复共共轭轭转置。转置。(9)(9)非共轭转置
17、非共轭转置“.”.”A.表示非共轭转置;对于复矩阵,不包括共轭。表示非共轭转置;对于复矩阵,不包括共轭。(10)(10)冒号操作符冒号操作符“:”冒冒号号是是一一个个非非常常有有用用的的操操作作符符;可可以以产产生生向向量量、数数组组下下标标以及以及for循环。循环。2.2 2.2 关系操作符关系操作符 关系运算是指两个元素之间数值的比较。关系运算是指两个元素之间数值的比较。MATLAB所提供的所提供的关系操作符如表所示。关系操作符如表所示。l 比较大小,如果结论是比较大小,如果结论是 真真 ,返回返回 1 1 ,否则返回,否则返回 0 0l 注意注意 =与与 =的区别的区别l 关系操作符能用
18、来比较两个关系操作符能用来比较两个同样大小同样大小的数组,或用来的数组,或用来比较比较一个数组和一个标量一个数组和一个标量,在后一种情况,标量和数组中,在后一种情况,标量和数组中的每一个元素相比较,比较结果与数组大小一样。的每一个元素相比较,比较结果与数组大小一样。例:例:关系运算关系运算举例举例 2+2=4 23 A=1 3 5;2 0 6;B=3 1 0;2 4 6;A=B x=5 0;4 2;x42.3 2.3 逻辑操作符逻辑操作符 通通常常逻逻辑辑变变量量只只能能取取0(0(假假)和和1(1(真真)两两个个值值。逻逻辑辑量量的的基基本本运运算算除除“与与(&)”(&)”、“或或(|)”(|)”和和“非非()”()”外外,有有时时也也包包括括“异异或或(xorxor)”)”,不不过过“异异或或”可可以以用用3 3种种基基本本运运算算组组合合而而成成。两个逻辑量经过这两个逻辑量经过这4 4种逻辑运算后的输出仍然是逻辑量。种逻辑运算后的输出仍然是逻辑量。运算对象与或非异或ABA&BA|BAXor(A,B)000010010111100101111100逻辑运算表逻辑运算表2.4 2.4 关系与逻辑函数关系与逻辑函数其他关系与逻辑函数其他关系与逻辑函数 测试函数测试函数 括号幂,点幂正号,负号,逻辑非乘,除,点乘,点除加,减冒号运算关系运算&|&|运算优先级运算优先级高低