您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 大学课件 > 武科大Matlab仿真第三章数组及其运算
第三章数组及其运算仿真技术第三章数组及其运算本章主要内容如下:3.1概述3.2数值数组的生成和寻访3.3数组运算和矩阵运算3.4非数和空数组3.5数组的关系运算和逻辑运算3.6字符串数组第三章数组及其运算仿真技术3.1概述MATLAB长于数值计算,而所谓数值计算,就是指计算的表达式、变量中不得包含未经定义的自由变量。数值数组(NumeralArray)和数组运算(ArrayOperations)是MATLAB的核心内容。数组是MATLAB最重要的一种内建数据类型,而数组运算则是定义在这种数据结构上的方法。本章重点介绍数值数组,其次是与数组类似其它结构体。数组:是指由一组实数或复数排成的长方阵列(Array),包括行向量、列向量和矩阵。数组的运算:无论对数组施加什么运算(加减乘除或函数)总认定那种运算对被运算数组中的每个元素平等地实施同样的操作。第三章数组及其运算仿真技术3.1概述变量及其赋值在命令窗口可直接输入变量并赋值,无须声明其类型和维数,MATLAB将自动处理。MATLAB的变量名称由英文大小写52个字母、数字和下划线等符号组成,并且第一个字符必须是英文字母,变量和常量最长允许31个字符。须注意的是,在默认状态下,MATLAB对字母大小写敏感。第三章数组及其运算仿真技术3.1概述MATLAB数据格式及显示方式MATLAB既可用传统的十进制数表达数值,也可以用科学计数表达数值,用e代表10的指数形式,用i和j来代表虚数。MATLAB内部数据格式只有一种,是IEEE浮点标准的双精度二进制(64位),相应于十进制的16位有效数,范围为10-308~10+308。为了人机交互的友好性,数据输出显示格式有8种。可用菜单选项或format命令选择。第三章数组及其运算仿真技术3.2数值数组的生成和寻访3.2.1一维数组1.一维数组的创建a)逐个元素输入法借助数组编辑器可以逐个输入数组元素(对于二维数组同样适用),但也可在指令窗中直接输入。例如在指令窗中输入(数组元素之间用“”或“,”隔开):x=[2pi/3sqrt(3)3+5i]则将显示:x=2.00001.04721.73213.0000+5.0000i第三章数组及其运算仿真技术3.2数值数组的生成和寻访3.2.1一维数组1.一维数组的创建c)定数线性采样法该方法在设定的“总点数”下,均匀采样生成一维“行”数组。其通用格式为:x=linspace(a,b,n)【说明】a、b分别是生成数组的第一个和最后一个元素,n是采样总点数。该指令与x=a:(b-a)/(n-1):b相同。d)此外还可通过数组运算或数组生成函数,构建某些特殊的数组。第三章数组及其运算仿真技术【例】一维数组的冒号生成法和定数线性采样法。x=(0:pi/10:pi)x=Columns1through600.31420.62830.94251.25661.5708Columns7through111.88502.19912.51332.82743.1416y=linspace(0,pi,11)y=Columns1through600.31420.62830.94251.25661.5708Columns7through111.88502.19912.51332.82743.1416%冒号法生成一维数组%定数(0,)线性采样法生成(1×11)数组显然这两种方法生成的一维数组是完全相同的。第三章数组及其运算仿真技术3.2.1一维数组2.一维数组的寻访数组寻访的一般格式为X(index),下标index可以是单个正整数或正整数数组。例如对数组作如下操作:x=[2.00001.04721.73213.0000+5.0000i]x(3)ans=1.7321x([124])ans=2.00001.04723.0000+5.0000ix(2:end)ans=1.04721.73213.0000+5.0000ix(4:-1:1)ans=3.0000+5.0000i1.73211.04722.0000下标为由[]构成的数组下标为由冒号生成法构成的数组取单个数组元素第三章数组及其运算仿真技术3.2.2二维数组1.二维数组的创建a)直接输入法整个输入数组须以“[]”为其首尾;数组行与行之间用“;”或“回车键”隔离;数组元素用逗号或空格分离。例如要输入二维数组987654321A则在指令窗中的操作如右图所示。其中,第一个矩阵输入采用“;”分行,第二个矩阵输入采用“回车键”分行。A=[123;456;789]A=123456789A=[1,2,34,5,67,8,9]A=123456789第三章数组及其运算仿真技术3.2.2二维数组1.二维数组的创建b)利用M文件创建和保存数组对于经常需要调用的且比较大的数组,可专门为该数组创建一个M文件。利用文件编辑器输入该数组并保存,以后只要在MATLAB指令窗中,运行该文件,文件中的数组就会自动生成于MATLAB内存中。c)标准数组生成函数指令含义指令含义diag产生对角形数组(二维以下)rand产生均匀分布随机数组eye产生单位数组(二维以下)randn产生正态分布随机数组magic产生魔方数组(二维以下)zeros产生全0数组ones产生全1数组第三章数组及其运算仿真技术d=eye(5)%产生(5*5)的单位阵d=1000001000001000001000001a=3*ones(4,5)%产生4行5列全3数组a=33333333333333333333b=diag(a)%取a阵对角元b=3333c=diag(b)%生成对角元为数组b对角阵(与diag([3,3,3,3])效果相同)c=3000030000300003zeros(5,6)%生成5行6列的全0阵ans=000000000000000000000000000000第三章数组及其运算仿真技术3.2.2二维数组2.二维数组的寻访和赋值a)全元素标识和赋值这是一种最常用的标识方式,对于二维数组来说,“全下标”标识由两个下标组成:行下标,列下标。如A(3,5)等。b)单下标标识和赋值这是只用一个下标来指明元素在数组中的位置。对二维数组采用“单下标”标识,应先对数组的所有元素进行“一维编号”,即先设想把二维数组的所有列按先左后右的次序,首尾相接排成“一维长列”;然后自上往下对元素位置进行编号。a=zeros(2,5)a=0000000000(生成2行5列0数组)a(:)=-4:5a=-4-2024-3-1135(对A进行单下标全元素赋值)第三章数组及其运算仿真技术3.2.2二维数组2.二维数组的寻访和赋值c)利用MATLAB的冒号运算,可方便地进行数组(矩阵)的子数组(子矩阵)的寻访和赋值。冒号表达式:s1:s2:s3式中,s1:起始值;s2:步长(省略为1);s3:终止值。例如:A(:,j):表示A矩阵第j列全部元素A(i,:):表示A矩阵第i行全部元素A(1:3,2:4):表示对A矩阵取第一到第三行,第二到第四列中所有元素构成的子矩阵。s=[135];a(s)=10:10:30a=10203024-3-1135(对A进行单下标行数组元素赋值)第三章数组及其运算仿真技术3.3.1数组运算的常用函数1.函数数组的运算规则对于(m×n)数组X=[xij]m×n,函数f(·)的数组运算规则是指:f(X)=[f(xij)]m×n3.3数组运算和矩阵运算例如对(3×3)数组A进行2次乘方运算A2,只需对数组中每个元素进行乘方运算aij2即可,如右图所示。A=[123;456;789]A=123456789A.^2ans=149162536496481第三章数组及其运算仿真技术3.3.1数组运算的常用函数2.常用函数3.3数组运算和矩阵运算名称含义名称含义名称含义sin正弦log2以2为底的对数real复数实部cos余弦pow22的幂sign符号函数tan正切log自然对数rem求余数asin反正弦log10常用对数mod模除求余acos反余弦angle相角(弧度)sqrt平方根atan反正切conj复数共轭abs模或绝对值exp指数imag复数虚部第三章数组及其运算仿真技术mod(A,2)ans=101010101例如对数组987654321Alog(A)ans=00.69311.09861.38631.60941.79181.94592.07942.1972exp(A)ans=1.0e+003*0.00270.00740.02010.05460.14840.40341.09662.98108.1031sign(A)ans=111111111real(A)ans=123456789angle(A)ans=000000000第三章数组及其运算仿真技术3.3.2矩阵运算矩阵运算不同于数组运算,要符合矩阵运算的规则数组运算矩阵运算指令含义指令含义A.'非共轭转置A'共轭转置A=s把标量s赋给A的每个元素s+B标量s分别与B元素之和s.*A标量s分别与A元素之积s*A标量s分别与A元素之积A.^nA的每个元素自乘n次A^nA阵为方阵时,自乘n次A+B对应元素相加A+B矩阵相加A.*B对应元素相乘A*B内维相同矩阵的乘积A./BA的元素被B的对应元素除A/BA右除Blog(A)对A的各元素求对数Logm(A)A的矩阵对数函数第三章数组及其运算仿真技术C=-4.0000+1.0000i-3.0000+3.0000i-2.0000+2.0000i-1.0000+3.0000i0+2.0000i1.0000+5.0000i2.0000+2.0000i3.0000+5.0000i4.0000+7.0000ians=-4.0000+1.0000i-1.0000+3.0000i2.0000+2.0000i-3.0000+3.0000i0+2.0000i3.0000+5.0000i-2.0000+2.0000i1.0000+5.0000i4.0000+7.0000ians=-4.0000-1.0000i-1.0000-3.0000i2.0000-2.0000i-3.0000-3.0000i0-2.0000i3.0000-5.0000i-2.0000-2.0000i1.0000-5.0000i4.0000-7.0000iC=A+B*iC.'C'%例二维数组、矩阵运算A=[-4,-3,-2;-1,0,1;2,3,4];B=[1,3,2;3,2,5;2,5,7];C=A+B*i%生成复数数组C.',C'%非共轭转置和共轭转置第三章数组及其运算仿真技术A./B,A/B%数组、矩阵右除B.\A,B\A%数组、矩阵左除A.*B,A*B%数组乘和矩阵乘ans=-4.0000-1.0000-1.0000-0.333300.20001.00000.60000.5714ans=-2.5000-1.50001.5000-1.0000-0.54550.81820.50000.40910.1364ans=-4.0000-1.0000-1.0000-0.333300.20001.00000.60000.5714ans=-3.5000-3.0000-2.5000-1.9545-1.6364-1.31822.68182.45452.2273A./BA/BB.\AB\Aans=-4-9-4-30541528ans=-17-28-37125193247,A.*BA*BA=[-4,-3,-2;-1,0,1;2,3,4];B=[1,3,2;3,2,5;2,5,7];第三章数组及其运算仿真技术在程序流控制和逻辑、模糊推理中,都需要对一类是非问题作出“是真”、“是假”的判断。为此,MATLAB设计了关系操作、逻辑操作和一些相关函数。虽在其它程序语言中也有类似的关系、逻辑运算,但MATLAB作为一种比较完
本文标题:武科大Matlab仿真第三章数组及其运算
链接地址:https://www.777doc.com/doc-8686479 .html