2.2 一维数值数组及其操作
一维数值数组即为向量。日常应用中的大量数据都可以看成一个数值向量,可以对向量进行分析、运算等处理。
2.2.1 数组创建
创建简单的一维数值数组常用方法:
说明:若要创造列向量,只需将行向量进行转置即可,使用命令“'”,如x'表示x的转置。
【例2-7】 用linspace产生0~π的10个等距数组。
【例2-8】 用logspace产生10~100的8个等距数组。
2.2.2 数组的保存和装载
1.在命令行窗口保存数组
2.利用存取数据文件的方式保存数组
先建立一个M文件,名称为“abc.m”,其程序为:
这样就将数组A、B保存在文件名为xyz的数据文件,即xyz.mat文件。
3.利用Workspace菜单保存数组
若Workspace内存变量中已有数组A、B,可单击操作界面HOME选项卡下的按钮,在弹出的对话框中进行操作。
4.数组的装载
若要调用数组A、B,只需在MATLAB命令行窗口输入命令:
>>load xyz
即可将数组A、B导入工作区Workspace中。
2.2.3 数组寻址和赋值
1.数组寻址
由于数组是由多个元素组成,因此在访问数组中单个或多个元素时,有必要对数组进行寻址运算。
1)访问一个元素:x(i)表示访问数组x的第i个元素。
2)访问一块元素:x(a:b:c)表示访问数组x的从第a个元素开始,以步长为b,到第c个元素(但不超过c)结束的一块元素,b可以为负数,默认为1。
3)直接使用元素编址序号:x([a b c d])表示提取数组x的第a、b、c、d个元素构成一个新的数组[x(a)x(b)x(c)x(d)]。
4)用end参数表示数组的结尾,如x(5:end)。
5)利用索引函数find()寻址,如x(find(x>c))。
【例2-9】 查找数组位置及对应的值。
注:a表示数组所处的位置,b为a对应的值。
2.数组的赋值
通过数组赋值,可以修改原始数组中的数据。例如对【例2-9】中的数组x,输入命令:
2.2.4 数组排序及维数
1.数组排序
对于任意一个数组,其元素大小没有规律。在实际应用中,往往需要对数组元素进行排序。对数组排序的命令是sort()函数。
例如,对于【例2-9】中的原始数据x,输入命令:
2.数组维数
数组维数是指数组包含元素的个数。向量中元素的数量是向量的长度,用函数length()来求得。例如,对于【例2-9】中的原始数据x,输入命令:
2.2.5 数组运算
1.数组运算指令
数组运算指令及含义如表2-3所示。
表2-3 数组运算指令及含义
2.标量-数组运算
数组对标量的加、减、乘、除、幂运算是指数组的每个元素对该标量施加相应的加、减、乘、除、幂运算。
设a=[a1,a2,…,an],c=标量
则a+c=[a1+c,a2+c,…,an+c]
a.*c=[a1*c,a2*c,…,an*c](点乘)
a./c=[a1/c,a2/c,…,an/c](右点除)
a.\c=[c/a1,c/a2,…,c/an](左点除)
a.^c=[a1^c,a2^c,…,an^c](点幂)
c.^a=[c^a1,c^a2,…,c^an]
3.数组-数组运算
当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行,不同大小或维数的数组是不能进行运算的。
设a=[a1,a2,…,an],b=[b1,b2,…,bn]
则a+b=[a1+b1,a2+b2,…,an+bn]
a.*b=[a1*b1,a2*b2,…,an*bn]
a./b=[a1/b1,a2/b2,…,an/bn]
a.\b=[b1/a1,b2/a2,…,bn/an]
a.^b=[a1^b1,a2^b2,…,an^bn]
4.向量的常用函数
一维数组(向量)的常用函数及其含义如表2-4所示。
表2-4 向量的常用命令及含义