第二章数值数组及其运算
第二章 数值数组及其运算
主要内容 UNIVE ●概述 维数组的创建和寻访 二维数组的创建 二维数组元素的标识 ●二维数组的子数组寻访和赋值 ●执行数组运算的常用函数 ●数组运算和矩阵运算 中国民航大学电子信息工程学院
中 国 民 航 大 学 电 子 信 息 工 程 学 院 主要内容 ⚫概述 ⚫一维数组的创建和寻访 ⚫二维数组的创建 ⚫二维数组元素的标识 ⚫二维数组的子数组寻访和赋值 ⚫执行数组运算的常用函数 ⚫数组运算和矩阵运算
21概述 UNIVE ●数值数组和数组运算是 Matlab的核心内容 ● Matlab精心设计数组和数组运算的目的 使计算程序简单、易读,使程序指令更接近于教科书上的数学计 算公式 提高程序的向量化程度,提高计算效率,节省计算机开销 ●数组 数组是指由一组实数或复数排成的长方形阵列。它可以是一维的“行 s维的’可以是二维的“矩形”,也可以是“三维”的,甚至是更高 或列 数组运算 无论数组间进行何种运算(加、减、乘、除或函数),数组运算是各 数组对应元素之间的运算 数组乘法运算必须在相同阶数的数组间进行(.*) 数组的乘方运算是以前一个数组的元素为底,以后一个数组的元素为 指数,将对应的元率有#数管型新基
中 国 民 航 大 学 电 子 信 息 工 程 学 院 2.1 概述 ⚫ 数值数组和数组运算是Matlab的核心内容 ⚫ Matlab精心设计数组和数组运算的目的 ➢ 使计算程序简单、易读,使程序指令更接近于教科书上的数学计 算公式 ➢ 提高程序的向量化程度,提高计算效率,节省计算机开销 ⚫ 数组 数组是指由一组实数或复数排成的长方形阵列。它可以是一维的“行 或列”,可以是二维的“矩形”,也可以是“三维”的,甚至是更高 维的 ⚫ 数组运算 无论数组间进行何种运算(加、减、乘、除或函数),数组运算是各 数组对应元素之间的运算 数组乘法运算必须在相同阶数的数组间进行(.*) 数组的乘方运算是以前一个数组的元素为底,以后一个数组的元素为 指数,将对应的元素进行指数运算得到的新数组
fG22一维数组的创建和寻访 UNIVE 维数组的创建 逐个元素输入法 变量名=元素元素元素] 说明:各元素间可以用空格,也可以用逗号分隔 冒号生成法 变量名=a:inc:b%生成从a到b,间隔为inc的一维数组 说明:a:数组的第一个元素 inc:采样点之间的间隔即步长(数组元素间的间隔长度) (b-a)是inc的整数倍,则所生成数组的最后一个元素等于b 否则小于b 例:在 matlab指令行输入 X=1:2:11 X=1:2:10 35701 57 中国民航大学电子信息工程学院
中 国 民 航 大 学 电 子 信 息 工 程 学 院 2.2 一维数组的创建和寻访 ⚫ 一维数组的创建 ➢ 逐个元素输入法 变量名=[元素 元素 元素] 说明:各元素间可以用空格,也可以用逗号分隔 ➢ 冒号生成法 变量名=a:inc:b %生成从a到b,间隔为inc的一维数组 说明:a :数组的第一个元素 inc :采样点之间的间隔即步长(数组元素间的间隔长度) (b-a)是inc的整数倍,则所生成数组的最后一个元素等于b 否则小于b 例 : 在matlab指令行输入 x=1:2:11 x=1:2:10 x= x= 1 3 5 7 9 11 1 3 5 7 9
fG22一维数组的创建和寻访 UNIVE 说明:a,inc,b之间必须用冒号“:”分隔(冒号必须在英文状态下) inc可以省略。省略时,默认其取值为1,即认为ic=1 inc可以取正数或负数。但要注意:inc取正时,要保证ab ●定数线性采样法 linspace 功能:在设定的“总点数”下,均匀采样生成一维“行”数组。 格式:x= linspace(a,b,n) 说明:在a,b中等间隔生成n个元素 等价于:x=a:(b-a)(n-1):b 例:x- linspace(1,10,5) X=1.00003.2500550007750010.0000 X=linspace (1, 11, 4) X=1.00004.33337.666711.0000 中国民航大学电子信息工程学院
中 国 民 航 大 学 电 子 信 息 工 程 学 院 2.2 一维数组的创建和寻访 说明:a, inc,b之间必须用冒号“:”分隔(冒号必须在英文状态下) inc 可以省略。省略时,默认其取值为1,即认为inc=1 inc 可以取正数或负数。但要注意:inc取正时,要保证ab ⚫ 定数线性采样法linspace 功能:在设定的“总点数”下,均匀采样生成一维“行”数组。 格式:x=linspace(a,b,n) 说明:在[a,b]中等间隔生成n个元素 等价于:x=a:(b-a)/(n-1):b 例:x=linspace(1,10,5) x =1.0000 3.2500 5.5000 7.7500 10.0000 x=linspace(1,11,4) x= 1.0000 4.3333 7.6667 11.0000
)2.2一维数组的创建和寻访 UNIVE 一维数组的子数组寻访 令x是1×n维数组,则一维数组的子数组寻访为 X (index) index:单个正整数m(1m≤n)表示数组x的第m个元素 例x=36912151821 (3)= index:数组如m,p,q,表示寻访数组x的第m,p,q个元素组成的子 数组(1mn,1≤p≤n,1≤q≤n) 例x(135)=3915x(2352234 index:p:q;m,表示寻访数组的第p个到第m个间隔为q个步长所对应 的元素组成的子数组。 例x(1:3:7)=31221;x(1:5);x(3:end) index:find(逻辑表达式)表示寻找由逻辑表达式所指定的元数构 成的子数组 例x(fnd(x>10)=12151821 中国民航大学电子信息工程学院
中 国 民 航 大 学 电 子 信 息 工 程 学 院 2.2 一维数组的创建和寻访 ⚫ 一维数组的子数组寻访 令 x是1×n维数组,则一维数组的子数组寻访为 x(index) index:单个正整数m(1≤m ≤n)表示数组x的第m个元素 例 x=[3 6 9 12 15 18 21] x(3)=9 index:数组如[m,p,q],表示寻访数组x的第m,p, q个元素组成的子 数组(1≤m ≤n, 1≤p≤n, 1≤q≤n) 例 x([1 3 5])=3 9 15 x([2 3 5 2 2 3 4 ]) index: p:q:m ,表示寻访数组的第p个到第m个间隔为q个步长所对应 的元素组成的子数组。 例 x(1:3:7)=3 12 21; x(1:5); x(3:end) index:find(逻辑表达式)表示寻找由逻辑表达式所指定的元数构 成的子数组 例 x(find(x>10))=12 15 18 21
)2.2一维数组的创建和寻访 UNIVE ●关系运算函数fnd的使用 例:生成矩阵x=[-2-10120.5-1inf10.5 xl=find(x==0)%找出x中恒等于0的元素的索引 x2=find(x>0)%找出x中大于0的元素的索引 x3=find(x)%找出x中不等于0的元素的索引 x 4=find(abs(x)>0. 1&abs(x)<0.6 %找出x中绝对值介于01和0.6之间的元素的索引 中国民航大学电子信息工程学院
中 国 民 航 大 学 电 子 信 息 工 程 学 院 2.2 一维数组的创建和寻访 ⚫ 关系运算函数find的使用 例:生成矩阵x=[-2 -1 0 1 2 0.5 -1 inf 1 0.5] x1=find(x==0) %找出x中恒等于0的元素的索引 x2=find(x>0) %找出x中大于0的元素的索引 x3=find(x) %找出x中不等于0的元素的索引 x4=find(abs(x)>0.1&abs(x)<0.6) %找出x中绝对值介于0.1和0.6之间的元素的索引
fG22一维数组的创建和寻访 UNIVER °子数组的赋值 格式:x( index)=y 说明:x( index)所得到的数据长度与y的数据长度必须相同 index和子数组寻访中的 index定义一样 y可以是单个数,也可以是一维数组,也可以是某一维数组的 子数组 例x(3)=0; x(1:4)= randn(1,4) x(14|)=[22]: 例y= randn(1,10) x(1:4)=y(2:5) 中国民航大学电子信息工程学院
中 国 民 航 大 学 电 子 信 息 工 程 学 院 2.2 一维数组的创建和寻访 ⚫ 子数组的赋值 格式:x(index)=y 说明:x(index)所得到的数据长度与y的数据长度必须相同 index和子数组寻访中的index定义一样 y可以是单个数,也可以是一维数组,也可以是某一维数组的 子数组 例 x(3)=0; x(1:4)=randn(1,4); x([1 4])=[2 2]; 例 y=randn(1,10); x(1:4)=y(2:5)
23二维数组的创建 UNIVER o概述 二维数组是由实数或复数排列成矩阵而构成的,如256 从数据结构上看,二维数组等价于矩阵 47 当二维数组带有线性变换含义时,该二维数组就是矩阵 ●二维数组的创建 直接输入法 整个输入数组必须以方括号为其首尾 数组的行与行之间必须用分号“;”或回车键隔离 数组元素必须由逗号或空格分离 >所有标点符号必须在英文状态下输入 例 X=12:34 >创建一个二维数组Y,Y的第一行元素从1到6,间隔为1;Y的第二行元素从 12到1,间隔为2 Y=1:6;12:-:2:1 中国民航大学电子信息工程学院
中 国 民 航 大 学 电 子 信 息 工 程 学 院 2.3二维数组的创建 ⚫ 概述 二维数组是由实数或复数排列成矩阵而构成的,如 从数据结构上看,二维数组等价于矩阵 当二维数组带有线性变换含义时,该二维数组就是矩阵 ⚫ 二维数组的创建 ➢ 直接输入法 ➢ 整个输入数组必须以方括号为其首尾 ➢ 数组的行与行之间必须用分号“;”或回车键隔离 ➢ 数组元素必须由逗号或空格分离 ➢ 所有标点符号必须在英文状态下输入 例 ➢ X=[1 2;3 4] ➢ 创建一个二维数组Y,Y的第一行元素从1到6,间隔为1;Y的第二行元素从 12到1,间隔为-2 Y=[1:6;12 :-2 :1] 4 7 2.5 6
23二维数组的创建 UNIVE ●利用M文件创建和保存数组 对于经常需要调用且较大的数组,一般采用M文件编辑器 来建立数组 步骤: 1.打开一个新的M文件,编辑所要创建数组的M文件 2.保存该文件 3.在 Matlab指令运行该文件名即可得到数组 中国民航大学电子信息工程学院
中 国 民 航 大 学 电 子 信 息 工 程 学 院 2.3二维数组的创建 ⚫ 利用M文件创建和保存数组 对于经常需要调用且较大的数组,一般采用M文件编辑器 来建立数组 步骤: 1. 打开一个新的M文件,编辑所要创建数组的M文件 2. 保存该文件 3. 在Matlab指令运行该文件名即可得到数组