一、数组的访问与寻访
1.创建一维数组变量
法1:逐个元素输入法
- 所有的向量元素必须在操作符“[ ]”之内
- 向量元素间用空格或逗号分开。
- 输入元素可以是整数、变量、算式或复数
创建数组(行向量)a=[1 3 pi 3+5i]
a=[1 3 pi 3+5*i] %or a=[1, 3, pi, 3+5*i]
a= 1.0000 3.0000 3.1416 3.0000 + 5.0000i
法2:使用冒号操作符
通过设置开始和结束元素,以及元素之间的间隔 ,三者之间用冒号分隔 x=Start:Increment:End
Start表示向量x的第一个元素;
向量x的所有元素不能大于End ;
Increment是元素之间的间隔,可正可负。若负,则必须Start>End;若正,则必 须Start<End,否则创建的为空向量。
若Increment=1,则可简写为:x=Start:End
法3:定数线性采样法
x= linspace(x1, x2, n)
在设定的“总点数”下,均匀采样生成一维由n个元素组成的行向量;
x1与x2之间元素的间隔=(x2-x1)/(n-1)。
如果忽略参数n,则系统默认生成100个元素的行向量。
列向量的创建
逐个元素输入法,使用分号“;”分割行,行向量采用逗号或空格。
2.创建二维数组变量
法1:逐个输入
- 所有的元素必须在操作符“[ ]”之内
- 行与行之间须用分号“;” 间隔,也可以在分行处用回车键间隔;
- 行内元素用空格或逗号“,”间隔。
- 输入元素可以是整数、变量、算式或复数
法2:函数方法
法3:变量编辑器
法4:M文件
当数组较大或者比较复杂时,将创建数组的指令存入M文件中,下次执行M文件即可在内存中生成数组。
3.数组元素的编址
全下标编址
对于二维数组来说,“全下标”标识由两个下标组成:行下标,列下标。
指出是“第几行,第几列”的元素。
单下标编址
用一个下标来表明元素在数组的位置。
一维编号:先把二维数组的所有列,按先左后右的次序、首尾相接排成“一维长列”;然后,自上往下对元素位置进行编号。
转换关系
以(m×n)的二维数组A为例,若“全下标”元素位置是“第r行,第c列”,那么相应的“单下标”为l=(c-1) ×m+r。
MATLAB有两个指令可实现以上表示方法间的转换:
sub2ind 根据全下标换算出单下标。
Ind2sub 根据单下标换算出全下标。
4.数组元素的寻访
法1:全下标寻访
冒号表示所在行或列上的全部元素。
法2:单下标寻访
采用单个“一维行或列数组”寻访元素。
首先将数组生成一个一维数组,然后进行寻访。
法3:逻辑寻访法
前两种方法寻访前都知道被寻访元素的具体位置,然后采用全下标(单下标)方法根据元素下标来寻访元素。
逻辑寻访法则根据“条件”寻访元素的位置,也称为“逻辑1”寻访。
二、数组构建技法综合
对已有数组进行修改和扩展操作
三、数组运算与矩阵运算
/:右除,A/B表示矩阵A乘以矩阵B的逆。
\:左除, A\B表示矩阵A的逆乘以B。
./:右除, A./B表示数组A中的每个元素除以数组B的对应的元素。
.\:左除, A.\B表示数组B中的每个元素除以数组A中对应的元素。
四、多维数组与复数数组
数组的第一维称为行,第二维称为列,第三维称为页,第四维称为箱…
创建方法
法1:直接通过全下标元素赋值方式创建多维数组,按页赋值
法2:函数法
由函数ones, zeros, rand, randn直接创建标准多维数组;
常用指令
四、非数与空数组
1.非数
按IEEE规定,0/0,∞/∞,0×∞等运算都会产生非数。该非数在MATLAB中用NaN或nan记述。
非数的性质
- NaN参与运算所得的结果也是NaN,即具有传递性
- 非数没有大小概念,因此不能比较两个非数的大小
非数的作用
- 真实记述0/0,∞/∞,0×∞运算的结果;
- 避免可能因0/0,∞/∞,0×∞运算而造成程序执行的中断;
- 在数据可视化中,用来裁剪图形。
2.空数组
“空”数组是MATLAB为操作和表述需要而专门设计的一种数组。
有一个维度是0的数组即为空数组
重要:空数组不是全0数组
空数组不占据存储空间,但是他是存在的
“空”数组的作用:
对于计算结果中的“空”可以合理地解释“所得结果的含义”;
运用“空”数组对其他非空数组赋值,可以改变数组的大小,但不能改变数组的维数。
不能使用“全下标”方式删除单个元素
五、关系操作和逻辑操作
1.关系运算
Matlab提供了6种关系运算符:<、>、<=、>=、==、~=(不等于)
运算法则
2.逻辑运算
Matlab提供了3种逻辑运算符:&(与)、|(或)、~(非)
运算法则
逻辑运算符的运算法则:
1、在逻辑运算中,认定非零元素为真(1),零元素为假(0)。
2、标量与数组进行逻辑运算。运算比较在标量与数组中的每个元素进行比较,运算结果与参与运算的数组同维。
3、数组之间进行逻辑运算。运算在两数组相同位置上的元素间进行,因此运算结果数组必定和参与运算的数组同维。
4、算术运算优先级最高,逻辑运算优先级最低。