在 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' %转置
例 3-2,访问数组示例。
clear all
A=[6 5 4 3 2 1]
a1=A(1) %访问数组第一个元素;
a2=A(1:3) %访问数组第 1、2、3 个元素,冒号从第一个到第三个
a3=A(3:end) %访问数组第 3 个到最后一个元素 end 表示最后一个数组元素
a4=A(end:-1:1) %数组元素反序输出
a5=A([1 6]) %访问数组第 1 个及第 6 个元素
例 3-3,子数组的赋值(Assign)示例。
在命令行窗口中输入如下语句:
clear all
A=[6 5 4 3 2 1]
A(3) = 0 %将第三个元素改为0
A([1 4])=[1 1] 将第一个和第四个元素均改为1
1、通过冒号创建一维数组
X=A:step:B
其中,A 是创建一维数组的第一个变量,step 是每次递增或递减的数值,直到最后一个元素和 B 的差的绝对值小于等于 step 的绝对值为止。
例 3-4,通过冒号创建一维数组示例。
在命令行窗口中输入如下语句:
clear all
A=2:6 %步长为1
B=2.1:1.5:6 %步长为1.5,递增,不超过6
C=2.1:-1.5:-6 %步长为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 = Empty matrix: 1-by-0
2.通过 logspace 函数创建一维数组
y= logspace(a,b):该函数创建行向量 y,第一个元素为 10的a次方 ,最后一个元素为10的b次方,形成总数为 50 个元素的等比数列。
y = logspace(a,b,n):该函数创建行向量 y,第一个元素为 10的a次方,最后一个元素为10的b次方,形成总数为 n 个元素的等比数列。
例 3-5,通过 logspace 函数创建一维数组示例。
在命令行窗口中输入如下语句:
clear all
format short; % 小数点后四位
A=logspace(1,2,20) %总数为20的等比数列,公比约为1.2884
B=logspace(1,2,10)
输出结果:
A = 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 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 函数创建一维数组
y= linspace (a,b):该函数创建行向量 y,第一个元素为 a,最后一个元素为 b,形成总数为 100 个元素的线性间隔向量。
ly = linspace (a,b,n):该函数创建行向量 y,第一个元素为 a ,最后一个元素为 b,形成总数为 n 个元素的线性间隔向量。
例 3-6,通过 linspace 函数创建一维数组示例。
在命令行窗口中输入如下语句:
clear all
format short;
A = linspace(1,100) %间隔默认 步长为1
B = linspace(1,36,12) %间步长为3.1818
C= linspace(1,36,1) %只有一个元素
输出结果:
A =
列 1 至 13
1 2 3 4 5 6 7 8 9 10 11 12 13
列 14 至 26
14 15 16 17 18 19 20 21 22 23 24 25 26
列 27 至 39
27 28 29 30 31 32 33 34 35 36 37 38 39
列 40 至 52
40 41 42 43 44 45 46 47 48 49 50 51 52
列 53 至 65
53 54 55 56 57 58 59 60 61 62 63 64 65
列 66 至 78
66 67 68 69 70 71 72 73 74 75 76 77 78
列 79 至 91
79 80 81 82 83 84 85 86 87 88 89 90 91
列 92 至 100
92 93 94 95 96 97 98 99 100
B =
列 1 至 7
1.0000 4.1818 7.3636 10.5455 13.7273 16.9091 20.0909
列 8 至 12
23.2727 26.4545 29.6364 32.8182 36.0000
C =
36
二、数组的常见运算
在 MATLAB 中,一维数组的基本运算包括加、减、乘、左除、右除和乘方。数组的加减运算:通过格式 A+B 或 A-B 可实现数组的加减运算。但是运算规则要求数组 A 和 B 的维数相同。
例 3-7,数组的加减运算示例。
在命令行窗口中输入如下语句:
clear all
A=[1 5 6 8 9 6]
B=[9 85 6 2 4 0]
C=[1 1 1 1 1]
D=A+B %加法
E=A-B %减法
F=A*2
G=A+3 %数组与常数的加法
H=A-C
数组的乘除运算:通过格式“.*”或“./”可实现数组的乘除运算。但是运算规则要求数组 A 和 B 的维数相同。
右除和左除的关系:A./B=B.\A,其中 A 是被除数,B 是除数。
例 3-8,数组的乘法示例。
clear all
A=[1 5 6 8 9 6]
B=[9 5 6 2 4 0]
C=A.* B %数组的点乘
D=A * 3 %数组与常数的乘法
输出结果:
A = 1 5 6 8 9 6
B = 9 5 6 2 4 0
C = 9 25 36 16 36 0
D = 3 15 18 24 27 18
例 3-9,数组的除法示例。
在命令行窗口中输入如下语句:
clear all
A=[1 5 6 8 9 6]
B=[9 5 6 2 4 0]
C=A.\B %数组和数组的左除
D=A./B %数组和数组的右除
E=A./3 %数组与常数的除法
F=A/3
输出结果:
A = 1 5 6 8 9 6
B = 9 5 6 2 4 0
C = 9.0000 1.0000 1.0000 0.2500 0.4444 0
D = 0.1111 1.0000 1.0000 4.0000 2.2500 Inf
E = 0.3333 1.6667 2.0000 2.6667 3.0000 2.0000
F = 0.3333 1.6667 2.0000 2.6667 3.0000 2.0000
通过乘方格式“.^”实现数组的乘方运算。
例 3-10,数组的乘方示例。
在命令行窗口中输入如下语句:
clear all
A=[1 5 6 8 9 6]
B=[9 5 6 2 4 0]
C=A.^B %数组的乘方
D=A.^3 %数组与某个具体数值的乘方
E=3.^A %常数与数组的乘方
输出结果:
A = 1 5 6 8 9 6
B = 9 5 6 2 4 0
C = 1 3125 46656 64 6561 1 %对应元素的乘方
D = 1 125 216 512 729 216 %每个元素与该常数的乘方,常数为指数
E = 3 243 729 6561 19683 729 % 每个元素为指数
通过函数 **dot()**可实现数组的点积运算,也要求两个数组维数相同
C= dot(A,B)或 C = dot(A,B,dim)。
例 3-11,数组的点积示例。
在命令行窗口中输入如下语句:
clear all
>> A=[1 2 3];
B=[4 5 6];
C=dot(A,B);
>> D=sum(A.*B) %对应元素相乘在求和
输出结果:
D =
32