大学精品课件:第三章 数组及其运算.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大学精品课件:第三章 数组及其运算.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学精品课件:第三章 数组及其运算 大学 精品 课件 第三 数组 及其 运算
- 资源描述:
-
1、第三章 数组及其运算数值仿真与MATLAB第三章 数组及其运算本章主要内容如下:3.1 概述3.2 数值数组的生成和寻访3.3 数组运算和矩阵运算3.4 数组的关系操作和逻辑操作3.5 字符串数组3.6 非数和空数组3.7 构架数组第三章 数组及其运算数值仿真与MATLAB3.1 概述n MATLAB长于数值计算,而所谓数值计算,就是指计算的表达式、变量中不得包含未经定义的自由变量。n 数值数组(Numeral Array)和数组运算(Array Operations)是MATLAB的核心内容。数组是MATLAB最重要的一种内建数据类型,而数组运算则是定义在这种数据结构上的方法。本章重点介绍数
2、值数组,其次是与数组类似其它结构体。n 数组:数组:是指由一组实数或复数排成的长方阵列(Array),包括行向量、列向量和矩阵。n 数组的运算数组的运算:无论对数组施加什么运算(加减乘除或函数)总认定那种运算对被运算数组中的每个元素平等地实施同样的操作。第三章 数组及其运算数值仿真与MATLAB3.1 概述n 变量及其赋值n 在命令窗口可直接输入变量并赋值,无须声明其类型和维数,MATLAB将自动处理。n MATLAB 的变量名称由英文大小写52个字母、数字和下划线等符号组成,并且第一个字符必须是英文字母,变量和常量最长允许31个字符。须注意的是,在默认状态下,MATLAB对字母大小写敏感。第
3、三章 数组及其运算数值仿真与MATLAB3.1 概述n MATLAB数据格式及显示方式n MATLAB既可用传统的十进制数表达数值,也可以用科学计数表达数值,用e代表10的指数形式,用i和j来代表虚数。n MATLAB内部数据格式只有一种,是IEEE浮点标准的双精度二进制(64位),相应于十进制的16位有效数,范围为10-308 10+308。n 为了人机交互的友好性,数据输出显示格式有8种。可用菜单选项或format命令选择。第三章 数组及其运算数值仿真与MATLAB3.2 数值数组的生成和寻访3.2.1 一维数组1.一维数组的创建a)逐个元素输入法 借助数组编辑器可以逐个输入数组元素(对于
4、二维数组同样适用),但也可在指令窗中直接输入。例如在指令窗中输入(数组元素之间用“”或“,”隔开):x=2 pi/3 sqrt(3)3+5i 则将显示:x=2.0000 1.0472 1.7321 3.0000+5.0000ib)冒号生成法 这是一维数组生成的常用方法,其通用格式为 x=a:inc:b其中a、b分别为 数组起始值和终值,inc为步长。第三章 数组及其运算数值仿真与MATLAB3.2 数值数组的生成和寻访3.2.1 一维数组1.一维数组的创建c)定数线性采样法n 该方法在设定的“总点数”下,均匀采样生成一维“行”数组。其通用格式为:x=linspace(a,b,n)n【说明】a、
5、b分别是生成数组的第一个和最后一个元素,n是采样总点数。该指令与 x=a:(b-a)/(n-1):b 相同。d)此外还可通过数组运算或数组生成函数,构建某些特殊的数组。第三章 数组及其运算数值仿真与MATLAB【例】一维数组的冒号生成法和定数线性采样法。x=(0:pi/10:pi)x=Columns 1 through 6 0 0.3142 0.6283 0.9425 1.2566 1.5708 Columns 7 through 11 1.8850 2.1991 2.5133 2.8274 3.1416 y=linspace(0,pi,11)y=Columns 1 through 6 0 0
6、.3142 0.6283 0.9425 1.2566 1.5708 Columns 7 through 11 1.8850 2.1991 2.5133 2.8274 3.1416%冒号法生成一维数组%定数(0,)线性采样法生成(111)数组显然这两种方法生成的一维数组是完全相同的。第三章 数组及其运算数值仿真与MATLAB3.2.1一维数组2.一维数组的寻访n数组寻访的一般格式为X(index),下标index可以是单个正整数或正整数数组。例如对数组作如下操作:x=2.0000 1.0472 1.7321 3.0000+5.0000i x(3)ans=1.7321 x(1 2 4)ans=2.
7、0000 1.0472 3.0000+5.0000i x(2:end)ans=1.0472 1.7321 3.0000+5.0000i x(4:-1:1)ans=3.0000+5.0000i 1.7321 1.0472 2.0000下标为由 构成的数组下标为由冒号生成法构成的数组取单个数组元素第三章 数组及其运算数值仿真与MATLAB3.2.2 二维数组1.二维数组的创建a)直接输入法n整个输入数组须以“”为其首尾;n数组行与行之间用“;”或“回车键”隔离;n数组元素用逗号或空格分离。例如要输入二维数组987654321A则在指令窗中的操作如右图所示。其中,第一个矩阵输入采用“;”分行,第二个
8、矩阵输入采用“回车键”分行。A=1 2 3;4 5 6;7 8 9A=1 2 3 4 5 6 7 8 9 A=1,2,34,5,67,8,9A=1 2 3 4 5 6 7 8 9第三章 数组及其运算数值仿真与MATLAB3.2.2 二维数组1.二维数组的创建b)利用M文件创建和保存数组 对于经常需要调用的且比较大的数组,可专门为该数组创建一个M文件。利用文件编辑器输入该数组并保存,以后只要在MATLAB指令窗中,运行该文件,文件中的数组就会自动生成于MATLAB内存中。c)标准数组生成函数指 令含 义指 令含 义diag产生对角形数组(二维以下)rand产生均匀分布随机数组eye产生单位数组(
9、二维以下)randn产生正态分布随机数组magic 产生魔方数组(二维以下)zeros产生全0数组ones产生全1数组第三章 数组及其运算数值仿真与MATLAB d=eye(5)%产生(产生(5*5)的单位阵)的单位阵d=1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 a=3*ones(4,5)%产生产生4行行5列全列全3数组数组a=3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 b=diag(a)%取取a 阵对角元阵对角元b=3 3 3 3 c=diag(b)%生成对角元为数组生成对角元为数组b 对对 角阵角
10、阵(与与diag(3,3,3,3)效果相同)效果相同)c=3 0 0 0 0 3 0 0 0 0 3 0 0 0 0 3 zeros(5,6)%生成生成5行行6列的全列的全0阵阵ans=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0第三章 数组及其运算数值仿真与MATLAB3.2.2 二维数组2.二维数组的寻访和赋值a)全元素标识和赋值n这是一种最常用的标识方式,对于二维数组来说,“全下标”标识由两个下标组成:行下标,列下标。如A(3,5)等。b)单下标标识和赋值n这是只用一个下标来指明元素在数组中的位置。对二维数组采用“
11、单下标”标识,应先对数组的所有元素进行“一维编号”,即先设想把二维数组的所有列按先左后右的次序,首尾相接排成“一维长列”;然后自上往下对元素位置进行编号。a=zeros(2,5)a=0 0 0 0 0 0 0 0 0 0(生成2行5列0数组)a(:)=-4:5a=-4 -2 0 2 4 -3 -1 1 3 5(对A进行单下标全元素赋值)第三章 数组及其运算数值仿真与MATLAB3.2.2 二维数组2.二维数组的寻访和赋值c)利用MATLAB的冒号运算,可方便地进行数组(矩阵)的子数组(子矩阵)的寻访和赋值。冒号表达式:冒号表达式:s1:s2:s3 式中,s1:起始值;s2:步长(省略为1);s
12、3:终止值。例如:A(:,j):表示A矩阵第j列全部元素 A(i,:):表示A矩阵第i行全部元素 A(1:3,2:4):表示对A矩阵取第一到第三行,第二到第四列中所有元素构成的子矩阵。s=1 3 5;a(s)=10:10:30a=10 20 30 2 4 -3 -1 1 3 5(对A进行单下标行数组元素赋值)back第三章 数组及其运算数值仿真与MATLAB3.3.1 数组运算的常用函数1.函数数组的运算规则n 对于(mn)数组X=xijmn,函数f()的数组运算规则是指:f(X)=f(xij)mn3.3 数组运算和矩阵运算 例如对(33)数组A进行2次乘方运算A2,只需对数组中每个元素进行乘
13、方运算aij2即可,如右图所示。A=1 2 3;4 5 6;7 8 9A=1 2 3 4 5 6 7 8 9 A.2ans=1 4 9 16 25 36 49 64 81第三章 数组及其运算数值仿真与MATLAB3.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
14、复数虚部第三章 数组及其运算数值仿真与MATLAB mod(A,2)ans=1 0 1 0 1 0 1 0 1例如对数组987654321A log(A)ans=0 0.6931 1.0986 1.3863 1.6094 1.7918 1.9459 2.0794 2.1972 exp(A)ans=1.0e+003*0.0027 0.0074 0.0201 0.0546 0.1484 0.4034 1.0966 2.9810 8.1031 sign(A)ans=1 1 1 1 1 1 1 1 1 real(A)ans=1 2 3 4 5 6 7 8 9 angle(A)ans=0 0 0 0 0
15、 0 0 0 0第三章 数组及其运算数值仿真与MATLAB3.3.2 矩阵运算n矩阵运算不同于数组运算,要符合矩阵运算的规则数组运算矩阵运算指令含义指令含义A.非共轭转置A共轭转置A=s把标量s赋给A的每个元素s+B标量s分别与B元素之和s.*A标量s分别与A元素之积s*A标量s分别与A元素之积A.nA的每个元素自乘n次AnA阵为方阵时,自乘n次A+B对应元素相加A+B矩阵相加A.*B对应元素相乘A*B内维相同矩阵的乘积A./BA的元素被B的对应元素除A/BA右除Blog(A)对A的各元素求对数Logm(A)A的矩阵对数函数第三章 数组及其运算数值仿真与MATLABC=-4.0000+1.00
16、00i -3.0000+3.0000i -2.0000+2.0000i -1.0000+3.0000i 0+2.0000i 1.0000+5.0000i 2.0000+2.0000i 3.0000+5.0000i 4.0000+7.0000ians=-4.0000+1.0000i -1.0000+3.0000i 2.0000+2.0000i -3.0000+3.0000i 0+2.0000i 3.0000+5.0000i -2.0000+2.0000i 1.0000+5.0000i 4.0000+7.0000ians=-4.0000-1.0000i -1.0000-3.0000i 2.0000
展开阅读全文