版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章 数值数组及其运算数值数组及其运算数值数组和数组运算始终数值数组和数组运算始终是是MATLAB的的核心核心最重要的一章最重要的一章3.1 数值运算的特点数值运算的特点数组:由一组实数或复数排成的长方数组:由一组实数或复数排成的长方阵列阵列(Array)n一维的一维的“行行”或或“列列”n二维的二维的“矩形矩形”n三维的三维的“若干矩形的堆叠若干矩形的堆叠”n更高的任意维更高的任意维3.1 数值运算的特点数值运算的特点数组运算:数组运算: 无论对数组施加什么运算(包括函数),总认为无论对数组施加什么运算(包括函数),总认为是对数组中是对数组中每个元素每个元素平等的实施平等的实施同样的
2、操作同样的操作设计数组和数组运算的目的:设计数组和数组运算的目的:n使程序简单、易读;更接近数学公式使程序简单、易读;更接近数学公式n提高程序向量化程度,提高计算效率,节省系提高程序向量化程度,提高计算效率,节省系统开销统开销3.1 数值运算的特点数值运算的特点绘制函数绘制函数 在在0 x1时的曲线时的曲线x=0:0.1:1y=x.*exp(-x)plot(x,y),xlabel(x),ylabel(y),title(y=x*exp(-x) 第一句定义自变量数组:第一句定义自变量数组:0为起点,每隔为起点,每隔0.1取一个点,直到取一个点,直到1。得到。得到111的数组的数组第二句中,指数函数
3、第二句中,指数函数exp(-x)对对x每个元素求值,结果也是每个元素求值,结果也是111的数组的数组数组乘是两个数组对应元素相乘,得到数组乘是两个数组对应元素相乘,得到y也是也是111的数组的数组连续函数必须在相应区间上连续函数必须在相应区间上采样采样才能进行数值计算才能进行数值计算xxey3.1 数值数值运算的特点的特点3.2 一维数组的创建和寻访一维数组的创建和寻访3.2.1 一维数组的创建一维数组的创建 (1)冒号生成冒号生成n格式格式 x=a:inc:bna是第一个元素,是第一个元素,inc是步长(缺省为是步长(缺省为1)n若若(b-a)是是inc的整数倍,则生成数组最后一的整数倍,则
4、生成数组最后一个元素等于个元素等于b,否则小于,否则小于bn inc可取正数或负数。取正:可取正数或负数。取正:ab3.2.1一维数组的创建一维数组的创建【例】冒号生成法演示例】冒号生成法演示x=1:6x = 1 2 3 4 5 6x=1:2:6x = 1 3 5 x=0:-1:-5x = 0 -1 -2 -3 -4 -53.2.1一维数组的创建一维数组的创建(2)线性(对数)采样)线性(对数)采样n格式格式 x=linspace(a,b,n)na,b是第一个和最后一个元素,是第一个和最后一个元素,n是采样点是采样点数数n等价于等价于x=a:(b-a)/(n-1):bn格式格式 x=logsp
5、ace(a,b,n)3.2.1一维数组的创建一维数组的创建【例】线性,对数生成法演示【例】线性,对数生成法演示b1=linspace(1,10,5)b1 = 1.0000 3.2500 5.5000 7.7500 10.0000b2=logspace(0,3,4)b2 = 1 10 100 10003.2.1一维数组的创建一维数组的创建(3)逐个元素输入逐个元素输入x=2 pi/2 sqrt(3) 3+5i(4)运用运用MATLAB函数生成法函数生成法如如rand,zeros,ones等等以上均为行数组,列数组转置即可以上均为行数组,列数组转置即可3.2.1 一维数组的创建一维数组的创建【例】
6、函数法生成数组【例】函数法生成数组a=ones(1,3)a = 1 1 1 rand(state,0) x=rand(1,5)a1 = 0.9501 0.2311 0.6068 0.4860 0.8913a1=aa2 = 1 1 1补充:一维数组元素的寻访和赋值补充:一维数组元素的寻访和赋值(1)数组元素的寻访()数组元素的寻访(Address)x(3) %寻访数组寻访数组x的第三个元素的第三个元素x(1 2 5) %寻访数组寻访数组x的第一、二、五个元素,组成子数组的第一、二、五个元素,组成子数组x(1:3) %寻访前三个元素,组成子数组寻访前三个元素,组成子数组x(3:end) %寻访从第
7、三到最后的元素,组成子数组。寻访从第三到最后的元素,组成子数组。x(3:-1:1) %由前三个元素倒排构成子数组由前三个元素倒排构成子数组x(find(x0.5) %由大于由大于0.5的元素构成子数组的元素构成子数组 %先找到大于先找到大于0.5的元素下标再寻访的元素下标再寻访x(1 2 3 4 4 3 2 1)%对元素可以重复寻访,使所得数组长对元素可以重复寻访,使所得数组长度允许大于原数组度允许大于原数组 注意对数组的寻访不改变原数组的值注意对数组的寻访不改变原数组的值补充:一维数组元素的寻访和赋值补充:一维数组元素的寻访和赋值(2)子数组的赋值()子数组的赋值(Assign)x(3) =
8、 0 %第三个元素赋值为第三个元素赋值为0 x(1 4)=1 1 %第一、四个元素都赋第一、四个元素都赋1保证被赋值的子数组长度与送入的数组保证被赋值的子数组长度与送入的数组长度长度相同相同3.2.2 二维数组的创建二维数组的创建1.直接输入法直接输入法二维数组三要素:二维数组三要素:n整个数组必须以整个数组必须以“”为首尾为首尾n数组行与行之间必须用数组行与行之间必须用“;”或或回车回车隔离隔离n数组元素必须用数组元素必须用“,”或或空格空格分隔分隔3.2.2 二维数组的创建二维数组的创建在在MATLAB环境下,用下面三条指令创建二维数组环境下,用下面三条指令创建二维数组Ca=2.7358;
9、 b=33/79;%这两条指令分别给变量这两条指令分别给变量 a ,b 赋值赋值C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i %创建二维数组创建二维数组CC = 1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.8244 3.5000 + 1.0000i “;”在在“”内,是数组行分隔符内,是数组行分隔符“;”作为指令结束符,作为指令结束符,不显示不显示执行结果执行结果3.2.2 二维数组的创建二维数组的创建2.数组编辑器创建数组编辑器创建3.2.2 二维数组的创建二维数组的创建3.利用利用M文件创建和保存数组文件创建和保
10、存数组对于对于经常需要调用的数组经常需要调用的数组,尤其是比较大,尤其是比较大而复杂的数组,值得为它专门建立一个而复杂的数组,值得为它专门建立一个M文件文件4.利用利用MATLAB函数创建特殊数组函数创建特殊数组表表3.21,例,例3.25,上机验证,上机验证diag 产生对角形数组产生对角形数组eye 产生单位数组产生单位数组magic 产生魔方数组产生魔方数组 (以上三类数组不适用于高维,只适用于二维以下)(以上三类数组不适用于高维,只适用于二维以下)ones 产生全产生全1数组数组zeros 产生全产生全0数组数组rand 产生均匀分布随机数组产生均匀分布随机数组randn 产生正态分布
11、随机数组产生正态分布随机数组randn(state,0) %把正态随机数发生器置把正态随机数发生器置03.2.2 二维数组的创建二维数组的创建3.2.2 二维数组的创建二维数组的创建【例】标准数组产生的演示【例】标准数组产生的演示ones(1,2) %产生长度为产生长度为2的全的全1行数组行数组ans = 1 1 randn(state,0)%把正态随机数发生器置把正态随机数发生器置0A=randn(2,3)%产生产生23的正态随机阵的正态随机阵A = -0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909 B=eye(3) %产生产生33的单位阵的单位阵B
12、= 1 0 0 0 1 0 0 0 13.2.2 二维数组的创建二维数组的创建C=diag(A) %取取A阵的对角元阵的对角元C = -0.4326 0.2877D=diag(C) %利用一维数组生成对角阵等同于利用一维数组生成对角阵等同于 指令指令D=diag(diag(A) D = -0.4326 0 0 0.28773.2.3 二维数组元素的标识和寻访二维数组元素的标识和寻访1.“全下标全下标”标识(标识(P113)经典教科书的标识法经典教科书的标识法即指出是即指出是“第几行,第几列第几行,第几列”的元素的元素优点:几何概念清楚,引述简单。(最常用)优点:几何概念清楚,引述简单。(最常用
13、)“全下标全下标”由两个下标组成:行下标,列下标由两个下标组成:行下标,列下标A(r,c)A的的r行行c列元素列元素A(r,:)A的的r行全部元素行全部元素,按行排按行排A(:,c)A的的c列全部元素列全部元素,按列排按列排3.2.3 二维数组元素的标识和寻访二维数组元素的标识和寻访2.“单下标单下标”标识标识就是用一个下标来指明元素在数组中的位置就是用一个下标来指明元素在数组中的位置对二维数组元素进行对二维数组元素进行“一维编号一维编号”n把二维数组所有列,按先左后右的次序,首尾相接把二维数组所有列,按先左后右的次序,首尾相接排成排成“一维长列一维长列”,然后自上往下编号,然后自上往下编号
14、A(:) A的的“单下标全元素单下标全元素”寻访寻访 A(s) “单下标单下标”寻访。生成寻访。生成“s指定的指定的”一维一维数组。数组。s是行数组(或列数组),则是行数组(或列数组),则A(s)就是就是长度相同的行数组(或列数组)。长度相同的行数组(或列数组)。w“单下标单下标”与与“全下标全下标”转换关系:转换关系: 以以(mn)的二维数组的二维数组A为例,全下标元素位置为例,全下标元素位置是是“第第r行,第行,第c列列”,改为单下标表示为,改为单下标表示为 a=(c-1)m+r。wMATLAB有两个指令可实现此转换:有两个指令可实现此转换:nsub2ind 据全下标算出单下标据全下标算出
15、单下标nind2sub 据单下标算出全下标据单下标算出全下标 nP113例例3.26(重点)(重点)3.2.3 二维数组元素的标识和寻访二维数组元素的标识和寻访3.2.3 二维数组元素的标识和寻访二维数组元素的标识和寻访3.“逻辑法逻辑法”标识标识常用问题:寻找数组中符合条件的元素常用问题:寻找数组中符合条件的元素A(L) “逻辑逻辑1”寻访寻访 。由。由与与A同样大小同样大小的的“逻辑数组逻辑数组”L中中的的“1”元素选出元素选出A的对应元素。的对应元素。【例】找出数组【例】找出数组 中所有绝对值大于中所有绝对值大于3的的元素元素A=zeros(2,5); %预生成一个预生成一个25全零数组
16、全零数组A(:)=-4:5 %运用运用“全元素全元素”赋值法获得赋值法获得AL=abs(A)3 %产生与产生与A同维的同维的“0-1”逻辑值数组逻辑值数组X=A(L) %把把L中逻辑值中逻辑值1对应的对应的A元素取出元素取出5311342024A3.2.3 二维数组元素的标识和寻访二维数组元素的标识和寻访A = -4 -2 0 2 4 -3 -1 1 3 5L = 1 0 0 0 1 0 0 0 0 1X = -4 4 5 L的元素是的元素是0或或1,它是它是“逻辑数组逻辑数组”,是一种特殊的数据类,是一种特殊的数据类型。型。islogical(L) %判断判断L是否逻辑值数组是否逻辑值数组A
17、(r,c)=Sa “双下标双下标”方式赋值。方式赋值。Sa的的“行宽、列长行宽、列长”必须与必须与A(r,c)的的“行宽、列长行宽、列长”相同。相同。A(:)=D(:)全元素赋值。结果:保持全元素赋值。结果:保持A的的“行宽、列长行宽、列长”不变。条件:不变。条件:A、D两个数组的两个数组的元素数相等元素数相等。A(s)=Sa“单下标单下标”部分元素赋值。结果:保持部分元素赋值。结果:保持A的的“行宽、列长行宽、列长”不变。条件:不变。条件:s单下标数组长度必须与单下标数组长度必须与一维数组一维数组Sa的长度相等的长度相等,但,但s、Sa不一定同是不一定同是“行数组行数组”或或“列数组列数组”
18、。补充:补充: 二维数组的子数组赋值二维数组的子数组赋值例例A=zeros(2,4) %创建创建24的全零数组的全零数组A = 0 0 0 0 0 0 0 0 A(:)=1:8 %全元素赋值方式全元素赋值方式A = 1 3 5 7 2 4 6 8 A(1,2,2) %可以用哪个指令替代?可以用哪个指令替代?ans = 3 4补充:二维数组的子数组赋值补充:二维数组的子数组赋值A(2,3,5) %由由“单下标行数组单下标行数组”寻访寻访A元素元素,组成行数组组成行数组ans = %如上个指令中的如上个指令中的“,”变成变成“;”,结果怎样?结果怎样? 2 3 5Sa=10 20 30 %Sa是长
19、度为是长度为3的的“行数组行数组”(列数组也可以列数组也可以)A(2,3,5)=Sa %单下标方式赋值单下标方式赋值 A = 1 20 30 7 10 4 6 8 A(:,2 3)=ones(2) %双下标赋值法双下标赋值法: %把把A的的2、3列元素全赋为列元素全赋为1A = 1 1 1 7 10 1 1 8 补充:二维数组的子数组赋值补充:二维数组的子数组赋值补充:二维数组的子数组赋值补充:二维数组的子数组赋值A(:,1,3)= %为空数组,表示把为空数组,表示把A的第的第1、3列去掉列去掉 A = 1 7 1 8 A(2,1:2:5)=-1 -3 -5 %把等号右边的把等号右边的3个数字
20、分别赋向个数字分别赋向A第二行第二行的的1,3,5个元素,位置不足的地方自动补个元素,位置不足的地方自动补0 A = 1 7 0 0 0 -1 8 -3 0 -5B=A(1,2,2,1,1,3,5)B = 1 0 0 -1 -3 -5 -1 -3 -5 1 0 0补充:二维数组的子数组赋值补充:二维数组的子数组赋值A(:,3:end)ans= 0 0 0 -3 0 -5L=A3L = 1 0 1 1 1 1 0 1 1 1 A(L)=NaNA = NaN 7 NaN NaN NaN NaN 8 NaN NaN NaN(2学时学时)3.2.4 数组操作技法综合数组操作技法综合数组操作函数数组操作
21、函数(P115表表3.23)rot90把数组逆时针旋转把数组逆时针旋转90度度diag 提取对角元素,或生成对角阵提取对角元素,或生成对角阵flipud上下交换上下交换fliplr 左右交换左右交换repmat按指定的行数列数铺放模块数组按指定的行数列数铺放模块数组reshape改变行数列数,元素数不变改变行数列数,元素数不变以上指令只适用于二维数组(以上指令只适用于二维数组(reshape可用于三可用于三维)维)【例】【例】(1)reshape的使用演示的使用演示a=-4:4A=reshape(a,3,3) %把一维数组把一维数组a重排成重排成 3 33 3的二维数组的二维数组a = -4
22、-3 -2 -1 0 1 2 3 4A = -4 -1 2 -3 0 3 -2 1 4 3.2.4 数组操作技法综合数组操作技法综合(2)diag的使用演示的使用演示b=diag(A) %取取A矩阵对角阵生成数组矩阵对角阵生成数组bB=diag(b) %根据根据b数组生成数组生成B对角矩阵对角矩阵b = -4 0 4B = -4 0 0 0 0 0 0 0 43.2.4 数组操作技法综合数组操作技法综合A = -4 -1 2 -3 0 3 -2 1 4(3)repmat使用演示使用演示B1=repmat(B,2,2)B1 = -4 0 0 -4 0 0 0 0 0 0 0 0 0 0 4 0
23、0 4 -4 0 0 -4 0 0 0 0 0 0 0 0 0 0 4 0 0 43.2.4 数组操作技法综合数组操作技法综合B = -4 0 0 0 0 0 0 0 43.2.4 数组操作技法综合数组操作技法综合(4)flipud和和fliplr使用演示使用演示A1=flipud(A) %上下对称交换上下对称交换 A1 = -2 1 4 -3 0 3 -4 -1 2 A2=fliplr(A) %左右对称交换左右对称交换 A2 = 2 -1 -4 3 0 -3 4 1 -2A = -4 -1 2 -3 0 3 -2 1 4(5)数组的删除数组的删除A1(1,3,:)= %删除删除A1的第的第1
24、,3行。行。为空数组为空数组A1= 3 0 -3注意:只能整行整列的删除注意:只能整行整列的删除(6)rot90的使用演示的使用演示D=rot90(A2,2) %逆时针旋转逆时针旋转180度度D= -2 1 4 -3 0 3 -4 -1 23.2.4 数组操作技法综合数组操作技法综合A1 = -2 1 4 -3 0 3 -4 -1 2A2 = 2 -1 -4 3 0 -3 4 1 -23.2.4 数组操作技法综合数组操作技法综合补充(补充(7)数组的扩展(赋值扩展法)数组的扩展(赋值扩展法)D(3,4)=11 %扩展为扩展为34数组。扩展部分除数组。扩展部分除 (3,4)元素为元素为11外,其
25、余均为外,其余均为0 D = -2 1 4 0 -3 0 3 0 -4 -1 2 11D(5,:)=22 %扩展为扩展为5*4数组数组D = -2 1 4 0 -3 0 3 0 -4 -1 2 11 0 0 0 0 22 22 22 22D= -2 1 4 -3 0 3 -4 -1 23.3 数组运算数组运算数组加、减、数组加、减、乘、除、幂乘、除、幂函数的数组运算规则:函数的数组运算规则:n函数函数f(.)对数组的运算相当于对数组的每一个元素作对数组的运算相当于对数组的每一个元素作相同的函数运算相同的函数运算nA=1,4;6,2;nB=A.2n加、减运算默认的都是数组运算加、减运算默认的都是
26、数组运算大部分常用函数都可以执行数组运算大部分常用函数都可以执行数组运算(表表3.31,3.32)3.3 数组运算数组运算矩阵运算有明确、严格的数学规则矩阵运算有明确、严格的数学规则数组运算是数组运算是MATLAB定义的规则定义的规则n目的:数据管理方便、操作简单、指令形式自目的:数据管理方便、操作简单、指令形式自然、执行计算有效然、执行计算有效n缺乏严谨的数学推理,本身仍在完善缺乏严谨的数学推理,本身仍在完善n影响随影响随MATLAB而扩大而扩大3.3 数组运算数组运算运算指令对照(表运算指令对照(表3.3-1)数组运算数组运算 矩阵运算矩阵运算A.非共轭转置非共轭转置A共轭转置共轭转置A.
27、n 各元素各元素n次幂次幂An方阵的方阵的n次幂次幂A.*B 对应元素相乘对应元素相乘A*B矩阵相乘矩阵相乘A./B A元素除以元素除以B元素元素A/BA右除右除B(AB-1 )B.A 同上同上BA B左除左除A (B-1A)exp(A) 对各元素求幂对各元素求幂expm(A)矩阵指数矩阵指数log(A) 对各元素求对数对各元素求对数logm(A)矩阵对数矩阵对数sqrt(A) 对各元素求方根对各元素求方根sqrtm(A)矩阵平方根矩阵平方根3.3 数组运算数组运算【例】两种不同转置的比较【例】两种不同转置的比较clear;A=zeros(2,3);A(:)=1:6; %全元素赋值法全元素赋值
28、法A=A*(1+i) %运用标量与数组乘产生复数矩阵运用标量与数组乘产生复数矩阵A_A=A. %数组转置,即非共轭转置数组转置,即非共轭转置A_M=A %矩阵转置,即共轭转置矩阵转置,即共轭转置A = 1.0000 + 1.0000i 3.0000 + 3.0000i 5.0000 + 5.0000i 2.0000 + 2.0000i 4.0000 + 4.0000i 6.0000 + 6.0000iA_A = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000
29、+ 6.0000iA_M = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i 6.0000 - 6.0000i【例】两种不同乘的比较【例】两种不同乘的比较clear;A=1,2;3,4B=2,3;4,5C=A.*BD=A*BA =1 2 3 4B =2 3 4 5C =2 6 12 20D =10 13 22 293.3 数组运算数组运算3.3 数组运算数组运算【例】两种不同求平方根的比较【例】两种不同求平方根的比较clear;B=4,9;16,25B_A=sqrt(B)B
30、_M=sqrtm(B)B = 4 9 16 25B_A = 2 3 4 5B_M = 0.9421 + 0.9969i 1.5572 - 0.3393i 2.7683 - 0.6032i 4.5756 + 0.2053i思考:要想由思考:要想由B_A和和B_M还原还原B,应该怎么做?应该怎么做?补充:高维数组补充:高维数组三维数组三维数组n行(行(Row),列(),列(Column),页(),页(Page)n行(一维),矩形面(二维)行(一维),矩形面(二维)n长方体(三维)长方体(三维)补充:高维数组补充:高维数组【例】生成三维数组。【例】生成三维数组。clear;A=reshape(1:1
31、2,2,2,3)A(:,:,1) = 1 3 2 4A(:,:,2) = 5 7 6 8A(:,:,3) = 9 11 10 12补充:高维数组补充:高维数组dim_A=ndims(A) %测量测量A的维数的维数size_A=size(A)%测量测量A的大小的大小L_A=length(A)%求求A的长度的长度(求求size中的最大值中的最大值)dim_A = 3size_A = 2 2 3L_A = 3 3.4 “非数非数”和和“空空”数组数组3.4.1 非数非数NaNIEEE规定规定0/0,0都会产生非数都会产生非数NaN(nan)的性质:的性质:n传递性传递性, NaN参与运算所得结果也是
32、参与运算所得结果也是NaNn没有没有“大小大小”概念概念,不能比较两个非数的大小,不能比较两个非数的大小3.4.1 非数非数NaN非数的用途:非数的用途:n真实记录真实记录0/0,0运算的结果运算的结果n避免避免可能因上述运算造成的程序执行可能因上述运算造成的程序执行中断中断n测量数据处理中,用来标识测量数据处理中,用来标识“野点野点”(非正常(非正常点)点)n在数据可视化中,用来裁剪图形在数据可视化中,用来裁剪图形3.4.1 非数非数NaN非数的产生非数的产生a=0/0,b=0*log(0),c=inf-inf非数的传递性非数的传递性0*a,sin(a)非数的属性判断非数的属性判断class
33、(a) %数据类型归属数据类型归属ans = doubleisnan(a) %该指令唯一能正确判断是否非数该指令唯一能正确判断是否非数ans = 13.4.1 非数非数NaN【例【例3.43.42 2】非数元素的寻访】非数元素的寻访rand(state,0)R=rand(2,5);R(1,5)=NaN;R(2,3)=NaN %产生一个均匀分布随机数组,其中元素(产生一个均匀分布随机数组,其中元素(1,5)和)和元素(元素(2,3)为非数元素)为非数元素R= 0.9501 0.6068 0.8913 0.4565 NaN 0.2311 0.4860 NaN 0.0185 0.4447LR=isn
34、an(R) %对数组元素是否非数进行判断对数组元素是否非数进行判断 %找出非数元素的位置标识找出非数元素的位置标识LR = 0 0 0 0 1 0 0 1 0 0si=find(LR) %非数的非数的“单下标单下标”si = 6 9ri,ci=find(LR) %直接确定全下标直接确定全下标ri = 2 1ci = 3 5ri,ci=ind2sub(size(R),si) %转换成转换成“全下标全下标”标识标识rj = 2 1cj = 3 5disp(非数在二维数组非数在二维数组R中的位置中的位置)disp(单下标时的第单下标时的第,int2str(si(1),和第和第 , int2str(s
35、i(2),个元素个元素) %输出输出“全下标全下标”标识标识非数在二维数组非数在二维数组R中的位置中的位置单下标时的第单下标时的第6和第和第9个元素个元素ind2sub 单下标转换为全下标指令单下标转换为全下标指令int2str 数据转换为字符串指令数据转换为字符串指令3.4.1 非数非数NaN3.4.2 “空空”数组数组2.“空空”数组数组是是MATLAB为操作和表述需要专门设计的为操作和表述需要专门设计的w一维、二维用一维、二维用表示表示w对于高维,只要某维或若干维对于高维,只要某维或若干维长度为长度为0空数组的用途:空数组的用途:n可以合理解释结果的含义可以合理解释结果的含义n用于赋值可
36、以用于赋值可以使数组变小(删除行或列)使数组变小(删除行或列),但但不能改变数组的维数不能改变数组的维数3.4.2 “空空”数组数组注意:注意:n“空空”数组不同于全零数组数组不同于全零数组n“空空”数组不是数组不是“虚无虚无”,存在于工作空间,存在于工作空间n判断是否判断是否“空空”:isemptyn不具备传递性,得不具备传递性,得“空空”结果要谨慎解释结果要谨慎解释3.4.2 “空空”数组数组【例【例3.43】创建】创建“空空”数组的几种方法数组的几种方法a=,b=ones(2,0),c=zeros(2,0) ,d=eye(2,0),f=rand(2,3,0,4)“空空”数组的属性数组的属
37、性class(a)%“空空”的数据类别的数据类别ans= doubleisnumeric(a)%是数值数组类吗是数值数组类吗ans= 1isempty(a) %唯一可正确判断数组是否唯一可正确判断数组是否“空空”的指的指令令ans= 13.4.2 “空空”数组数组which a %变量变量a是什么是什么a is a variable ndims(a)%数组数组a的维数的维数ans= 2 size(a)%a数组的大小数组的大小ans= 0 03.4.2 “空空”数组数组【例【例3.43】用于子数组的删除和大数组的大小收缩】用于子数组的删除和大数组的大小收缩A=reshape(-4:5,2,5)%
38、创建一个数值数组创建一个数值数组AA = -4 -2 0 2 4 -3 -1 1 3 5A(:,2,4)=%删除删除A的第二、四列的第二、四列 A = -4 0 4 -3 1 5A(1,:)= %删除删除A的第一行的第一行A = -3 1 5 重点重点3.5 关系操作和逻辑操作关系操作和逻辑操作MATLAB的约定:的约定:n任何任何非非0数认为是数认为是“逻辑逻辑真真” 只有只有0作为作为“逻辑逻辑假假”n关系表达式和逻辑表达式的计算结果是关系表达式和逻辑表达式的计算结果是“逻辑逻辑数组(数组(Logical Array)”1表示表示“真真”,0表示表示“假假”n逻辑数组是一种逻辑数组是一种特
39、殊特殊的的数值数组数值数组 数值类的有关操作和函数同样适用数值类的有关操作和函数同样适用n关系运算和逻辑运算仅对数组进行。关系运算和逻辑运算仅对数组进行。 3.5 关系操作和逻辑操作关系操作和逻辑操作1.关系操作关系操作小于小于大于大于= 大于等于大于等于= 等于等于= 不等于不等于标量与数组比较,标量与每个元素比较标量与数组比较,标量与每个元素比较两个数组比较,必须同维同大小两个数组比较,必须同维同大小3.5 关系操作和逻辑操作关系操作和逻辑操作【例】关系运算示例(【例】关系运算示例(P128)A=1:9,B=10-A,r0=(A3) %判断判断A中哪些元素不大于中哪些元素不大于3L2=(A
40、3)&(A6)%判断判断A中哪些元素大于中哪些元素大于3小于小于6A = 1 2 3 4 5 6L1 = 1 1 1 0 0 0 L2 = 0 0 0 1 1 03.5 关系操作和逻辑操作关系操作和逻辑操作A,B=-2:3C=xor(A,B)A = 1 2 3 4 5 6B = -2 -1 0 1 2 3C = 0 0 1 0 0 03.5 关系操作和逻辑操作关系操作和逻辑操作3.【例】常用逻辑函数演示【例】常用逻辑函数演示(见书表(见书表3.53)clear;A=1,2,0;3,0,0A = 1 2 0 3 0 0all(A) %不含不含0元素,返回元素,返回1ans = 1 0 0any(A) %不是全不是全0元素,返回元素,返回1ans = 1 1 0logical(A) %创建逻辑数组创建逻辑数组ans = 1 1 0 1 0 0B=true(2,3)B = 1 1 1 1 1 1islogical(B)ans = 1c=河北工业大学河北工业大学c =河北工业大学河北工业大学isletter(c)ans = 1 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 核医学科仪器设备管理制度培训
- H型钢翼缘矫正机操作规范培训
- 机修师岗位职责培训课件
- 炼铁厂相关方安全管理规定培训
- 镀锌公司分管生产副职安全职责培训课件
- 扁平风格设计在工作汇报中的应用与实践-高饱和度颜色-现代时尚插画风格
- 2026江西抚州市启航社会工作服务中心招收就业见习人员1人考试参考题库及答案解析
- 通信工程安全生产管理办法培训
- 蜡裂解及重合装置操作工岗前班组建设考核试卷含答案
- 金堂县第二人民医院2026年3月自主招聘人员(8人)笔试模拟试题及答案解析
- 大学马列主义经典著作选读教案
- 化工设备使用与维护
- 新概念英语第四册
- 部编版小学语文四年级下册教案(表格式)
- GB/T 16938-2008紧固件螺栓、螺钉、螺柱和螺母通用技术条件
- GB/T 15812.1-2005非血管内导管第1部分:一般性能试验方法
- 毕业证明书申请表(模板)
- 第5章护际关系伦理第6章课件讲义
- 城市供热工程系统规划-课件
- 新人教版三年级下册语文全册课件(新教材)
- 代维人员技能认证方案
评论
0/150
提交评论