知识要点
MATLAB中的所有数据都按照数组的形式进行存储和运算,数组的属性及数组之间的逻辑关系是编写程序时非常重要的两个方面。在MATLAB平台上,数组的定义是广义的,数组的元素可以是任意数据类型,如数值、字符串等。矩阵是特殊的数组,在很多工程领域,都会遇到矩阵分析和线性方程组的求解等问题。本章的主要内容是对矩阵和数组进行深入讲解,以及关于矩阵和数组的复杂运算的应用。
学习要求

数组运算是MATLAB计算的基础。由于MATLAB面向对象的特性,这种数值数组成为MATLAB最重要的一种内建数据类型,而数组运算就是定义这种数据结构的方法。本节将系统地列出具备数组运算能力的函数名称,为兼顾一般性,以二维数组的运算为例,读者可推广至多维数组和多维矩阵的运算。
下面介绍在MATLAB中如何创建数组,以及数组的常用操作等,包括数组的算术运算、关系运算和逻辑运算。
3.1.1 数组的创建和操作
在MATLAB中一般使用方括号“[ ]”、逗号“,”、空格和分号“;”来创建数组,数组中同一行的元素使用逗号或空格进行分隔,不同行之间用分号进行分隔。
例3-1:创建空数组、行向量、列向量示例。
在命令行窗口中依次输入:
clear all
A = []
B = [6 5 4 3 2 1]
C = [6,5,4,3,2,1]
D = [6;5;4;3;2;1]
E = B' % 转置
输出结果:
A =
[]
B =
6 5 4 3 2 1
C =
6 5 4 3 2 1
D =
6
5
4
3
2
1
E =
6
5
4
3
2
1
例3-2:访问数组示例。
在命令行窗口中依次输入:
clear all
A = [6 5 4 3 2 1]
a1 = A(1) % 访问数组中的第1个元素
a2 = A(1:3) % 访问数组中的第1、2、3个元素
a3 = A(3:end) % 访问数组中的第3个到最后一个元素
a4 = A(end:-1:1) % 数组元素反序输出
a5 = A([ 1 6 ]) % 访问数组中的第1个及第6个元素
输出结果:
A =
6 5 4 3 2 1
a1 =
6
a2 =
6 5 4
a3 =
4 3 2 1
a4 =
1 2 3 4 5 6
a5 =
6 1
例3-3:子数组的赋值示例。
在命令行窗口中依次输入:
clear all
A = [6 5 4 3 2 1]
A(3) = 0
A([1 4]) = [1 1]
输出结果:
A =
6 5 4 3 2 1
A =
6 5 0 3 2 1
A =
1 5 0 1 2 1
在MATLAB中还可以通过其他各种方式创建数组,具体如下所示。
1.通过冒号创建一维数组
在MATLAB中,通过冒号创建一维数组的代码如下:
X = A : step : B
其中,A是创建一维数组的第一个变量,step是每次递增或递减的数值,直到最后一个元素和B的差的绝对值小于或等于step的绝对值为止。
例3-4:通过冒号创建一维数组示例。
在命令行窗口中依次输入:
clear all
A = 2 : 6
B = 2.1 : 1.5 : 6
C = 2.1 : -1.5 : -6
D = 2.1 : -1.5 : 6
输出结果:
A =
2 3 4 5 6
B =
2.1000 3.6000 5.1000
C =
2.1000 0.6000 -0.9000 -2.4000 -3.9000 -5.4000
D =
空的 1×0 double 行向量
2.通过logspace()函数创建一维数组
在MATLAB中常用logspace()函数创建一维数组,该函数的调用方式如下。
● y=logspace(a,b):该函数创建行向量y,第一个元素为10a,最后一个元素为10b,形成总数为50个元素的等比数列。
● y=logspace(a,b,n):该函数创建行向量y,第一个元素为10a,最后一个元素为10b,形成总数为n个元素的等比数列。
例3-5:通过logspace()函数创建一维数组示例。
在命令行窗口中依次输入:
clear all
format short;
A = logspace(1,2,20)
B = logspace(1,2,10)
输出结果:
A =
列 1 至 13
10.0000 11.2884 12.7427 14.3845 16.2378 18.3298 20.6914 23.3572 26.3665 29.7635 33.5982 37.9269 42.8133
列 14 至 20
48.3293 54.5559 61.5848 69.5193 78.4760 88.5867 100.0000
B =
10.0000 12.9155 16.6810 21.5443 27.8256 35.9381 46.4159 59.9484 77.4264 100.0000
3.通过linspace()函数创建一维数组
在MATLAB中常用linspace()函数创建一维数组,该函数的调用方式如下。
● y=linspace(a,b):该函数创建行向量y,第一个元素为a,最后一个元素为b,形成总数为100个元素的线性间隔向量。
● y=linspace(a,b,n):该函数创建行向量y,第一个元素为a,最后一个元素为b,形成总数为n个元素的线性间隔向量。
例3-6:通过linspace()函数创建一维数组示例。
在命令行窗口中依次输入:
clear all
format short;
A = linspace(1,100)
B = linspace(1,36,12)
C = linspace(1,36,1)
输出结果:
A =
列 1 至 21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
列 22 至 42
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
列 43 至 63
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
列 64 至 84
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
列 85 至 100
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
B =
1.0000 4.1818 7.3636 10.5455 13.7273 16.9091 20.0909 23.2727 26.4545 29.6364 32.8182 36.0000
C =
36





