《数组和向量学习.pptx》由会员分享,可在线阅读,更多相关《数组和向量学习.pptx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年3月17日第 1 页教学目标 掌握数组和向量的概念与性质 掌握数组与向量的操作和运算方法 了解数组与向量的实际应用第1页/共24页2023年3月17日第 2 页教学重点数组的创建方法数组的操作向量的创建方法向量的操作第2页/共24页2023年3月17日第 3 页教学内容MATLAB数组创建数组数组操作MATLAB向量第3页/共24页2023年3月17日第 4 页3.1 MATLAB数组MATLAB的一个重要功能是进行向量和矩阵的运算,而向量和矩阵主要由数组来表示。数组是MATLAB中的基本构件。数组的概念:(略)一个矢量可以只有一列,或者也可以只有一行。因此,矢量是数组的一个特殊情况
2、。通常,数组可以有多列和多行。第4页/共24页2023年3月17日第 5 页数组的性质(1/4)数组中的单个数据项称为元素。这些元素具有取值和位置组合而成的唯一属性。在一个二维数组中,位置是指元素所在的行号与列号(按顺序)。一般而言,n维数组中元素的位置是一个包含n个索引值的向量。第5页/共24页2023年3月17日第 6 页数组的性质(2/4)当应用于n维数组A时,函数size()按下面两种方式中的一种返回信息:如果按照只有一个返回值的形式调用,如sz=size(A),将会返回一个向量(n维),其中包含了数组A每一维的大小。如果按照具有多个返回值的形式调用,如rows,cols=size(A
3、),将返回具有所要求数量的数组A的各维大小。为了避免出错,给定返回变量的个数应当与数组维数相同。第6页/共24页2023年3月17日第 7 页数组的性质(3/4)length()函数返回数组的最大维值,因此如果我们创建一个具有283大小的3维数组,size(A)将会返回2 8 3,而length(A)将返回8。对于mn数组(实数)的转置(该操作由置于数组标识符(变量)后面的撇号字符()来表明),将返回一个nm的数组,其行与列发生了交换。第7页/共24页2023年3月17日第 8 页数组的性质(4/4)一些值得注意的特殊情况如下:当一个二维矩阵具有相同的行数和列数时,称其为方阵(square)。
4、当数组中的非零值仅出现在行号和列号相同的位置时,称该数组为对角的(diagonal)。如果仅有一行,则称其为行向量(row vector),或者如前一样称为向量。如果仅有一列,则称其为列向量(column vector),它是行向量的转置。如果一个数组(矩阵)没有任何元素,则称为空数组(empty array)(空矩阵)。第8页/共24页2023年3月17日第 9 页3.2 创建数组(1/2)可以通过直接输入数值来创建数组,也可以通过MATLAB内置函数来创建具有某一特点的数组。直接在数组中输入数值创建数组时,使用“;”或者另起一行表明一行的结束。第9页/共24页2023年3月17日第 10
5、页创建数组(2/2)通过函数创建数组函数zeros(m,n)与ones(m,n)分别产生填充值全部为0或1的m行n列的数组。函数rand(m,n)产生取值为01之间的均匀分布随机数的数组,randn(m,n)产生均值为0的正态分布随机数的数组。函数diag()具有多种形式。diag(A),其中A为一数组,它返回一个向量,将A的对角线上的元素作为向量元素;diag(V),其中V为一向量,它返回一个对角方阵,对角线元素为V的元素。MATLAB还提供了magic(m)函数,它产生一个填充1到m2之间数字的数组,其组织方式使得每一行、每一列以及对角线上的元素分别加起来等于相同的数。第10页/共24页2
6、023年3月17日第 11 页3.3 数组操作(1/2)获取数组中的元素 可以通过将需要获取元素的索引值用括号括起来的方式对数组中的元素进行寻址,其中第一个值为行索引值,第二个值为列索引值。也可以在数组中写入(存储)数值,如A(2,3)=0,若位置超出范围,则自动扩展数值。从数组中移除元素可以使用空数组 的一种特殊用法来完成此项任务。但数组元素必须整行或整列移除。如A(3,:)=或A(:,2)=等。第11页/共24页2023年3月17日第 12 页数组操作(2/2)数组其它操作数组算术操作(P/42-43)数组逻辑运算(P/43-44)使用库函数(P/44)数组连接(P/45)数组切片(P/4
7、5)数组重排(P/45-46)线性化数组(P/46-49)第12页/共24页2023年3月17日第 13 页3.4 应用实例计算土壤体积(1/3)估计为一座建筑准备地基所需要移走泥土的数量。第一步是测量待修建筑物的地面,将得到一个矩形的方格点,每一个方格点上定义了该点的高度。下一步是考虑建筑地基的建筑图。其中阴影区域是为了建造建筑地基而必须将泥土移走的地方。从建筑图中可以估计出每一个测量的方块中必须被移走泥土的比例(对于这个实例来说,它是一个介于01之间的数)。需要被移走的泥土的总量就等于每一小方块的深度与该方块中需要移除面积的乘积之和。第13页/共24页2023年3月17日第 14 页应用实
8、例 计算土壤体积(2/3)clearclc%soil depth data for each square produced by the surveydpth=8 8 9 8 8 8 8 8 7 8 7 7 7 7 8 8 8 78 8 8 8 8 8 8 7 7 7 7 7 8 7 8 8 8 78 8 8 8 7 7 8 7 8 8 8 8 8 7 8 8 8 87 7 7 8 7 8 8 8 8 8 8 8 7 6 7 7 7 78 8 8 8 8 8 8 8 7 7 7 7 7 6 6 7 7 88 7 7 8 7 7 8 7 7 7 7 7 7 7 7 7 7 89 8 8 9 8
9、 7 8 7 7 7 7 7 6 7 6 7 7 88 8 8 9 9 8 8 8 7 6 6 6 6 7 7 8 7 89 8 8 7 7 7 7 7 7 6 6 7 7 7 8 8 7 89 8 8 7 7 7 6 7 7 6 6 8 8 8 9 9 7 89 9 8 8 8 8 7 7 7 7 7 8 8 9 9 9 8 89 8 8 7 7 8 7 7 7 7 8 8 9 9 9 8 7 8;l%estimated proportion of each square that should be excavatedlarea=l1 1 1 1 1 1 1 1 1 1 .3 0 0 0
10、0 0 0 0l1 1 1 1 1 1 1 1 1 1 .7 0 0 0 0 0 0 0l1 1 1 1 1 1 1 1 1 1 1 .8 .4 0 0 0 0 0l1 1 1 1 1 1 1 1 1 1 1 1 1 .8 .3 0 0 0l1 1 1 1 1 1 1 1 1 1 1 1 1 1 .7 .2 0 0l1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .6 0 0l0 0 0 .7 1 1 1 1 1 1 1 1 1 1 1 .8 0 0l0 0 0 .7 1 1 1 1 1 1 1 1 1 1 1 .7 0 0l0 0 0 .4 1 1 1 1 1 1 1 1 1 1
11、 1 .6 0 0l0 0 0 .1 .8 1 1 1 1 1 1 1 1 1 1 1.4 0l0 0 0 0 .2.7 1 1 1 1 1 1 1 1 1 1.9 .1l0 0 0 0 0 0 .4 .8 .9 1 1 1 1 1 1 1 1.6;lsquare_volume=dpth.*area;ltotal_soil=sum(sum(square_volume);代码清单 计算泥土总量的脚本第14页/共24页2023年3月17日第 15 页应用实例 计算土壤体积(3/3)地形测量 计算泥土体积 运行该程序,得到结果为1117.5立方单位 第15页/共24页2023年3月17日第 16 页
12、3.5 MATLAB向量向量是对相似数据项的集合进行分组的最简单方式,向量是数据的一维分组。向量中单个的数据项通常称为元素(element).向量元素的两个独立且截然不同的属性(数值及在向量中的位置)决定了其在某一特定向量中的唯一性。第16页/共24页2023年3月17日第 17 页创建向量创建向量有两种方法:使用一系列常值来创建向量。直接输入。使用冒号输入某个范围内的数值。使用linspace()函数创建;如linspace(0,10,7),第一个参数为下限,第二个参数为上限,第三个参数为向量中的数值个数。使用zeros(1,n)、ones(1,n)、rand(1,n)、randn(1,n)
13、等函数来创建。通过对已有的向量进行操作产生新的向量。第17页/共24页2023年3月17日第 18 页向量尺寸向量有一个专门的属性:向量的长度。在多数情况下,该长度在向量创建时就已固定。MATLAB能够通过插入或删除元素来增加或减小向量的长度。函数length(V)返回数组大小中的最大值 对于向量,该数值即为其长度。第18页/共24页2023年3月17日第 19 页向量索引数值索引 逻辑索引 如由Mask=true false false true得 mask=1 0 0 1(注意:命令窗口中显示的逻辑变量值是用1代表真,用0代表假).第19页/共24页2023年3月17日第 20 页缩短向量
14、从向量中移除元素可以缩短向量。可以使用空向量 的一种特殊用法来完成此项任务。注意:实际中很少将缩短向量作为对问题的正确求解方法,而且这样做可能会导致逻辑混乱。有可能的话,要使用索引来对需要保留的元素进行复制。第20页/共24页2023年3月17日第 21 页向量操作MATLAB语言的本质核心在于具有丰富的数组和向量操作工具。有3种方法直接从对标量的操作推广而来:(1)算术操作。(2)逻辑操作。(3)应用库函数。有两种方法是针对一般情况下的数组和特殊情况下的向量的:(1)连接。(2)切片(广义索引)。第21页/共24页2023年3月17日第 22 页3.6 应用实例力与力矩(1/2)考虑作用于物
15、体上P点的两个力,计算P点的合力、该合力方向上的单位向量以及该力关于M点的力矩。可以使用MATLAB中的向量来表示该问题中的各个向量,它们均具有3个元素:向量的x、y、z方向上的值。第22页/共24页2023年3月17日第 23 页应用实例力与力矩(2/2)1.clear2.clc3.PA=0 1 14.PB=1 1 05.P=2 1 16.M=4 0 17.%find the resultant of PA and PB8.PC=PA+PB9.%find the unit vector in the direction of PC10.mag=sqrt(sum(PC.2)11.unit_ve
16、ctor=PC/mag12.%find the moment of the force PC about M13.%this is the cross product of MP and PC14.MP=P-M15.moment=cross(MP,PC)当运行该代码后,返回的结果如下:PC=1 2 2unit_vector=0.4082 0.8165 0.4082moment=1 2-5 为了检查力矩计算结果,想象PC绕M点旋转,应用右手准则得到该力矩的旋转轴。大致说来,右手准则规定力矩的方向与在M点的一个标准右旋螺钉在该力的作用下旋转的方向相同。如果不用太精确的话,我们可以推断该力矩旋转轴大致沿z轴的负方向。显示的结果证实了这一估计是正确的。代码清单 求解向量问题的脚本 第23页/共24页2023年3月17日SCHOOL OF PHYSICS AND TECHNOLOGY N.N.U.第 24 页感谢您的观看!第24页/共24页