MATLAB 8.5基础教程
上QQ阅读APP看书,第一时间看更新

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 向量的常用命令及含义