数组的创建和操作
1、直接赋值创建
>> A=[] % 创建一个空数组
A =
[]
>> B=[1 2 3 4] % 元素之间使用空格隔开,创建一维数组
B =
1 2 3 4
>> C=[1,2,3,4] % 元素之间使用 “,” 隔开,创建一维数组
C =
1 2 3 4
>> D=['a';'b';'c'] % 元素之间使用 “;” 隔开,创建二维数组
D =
a
b
c
>> E=B' % 数组变量后加 “ ' ” 可实现转置
E =
1
2
3
4
2、通过冒号创建一维数组
>> A=1:4 % 数组元素从1到4,每次变化1
A =
1 2 3 4
>> B=2:3:10 % 数组元素从2到10,每次变化3
B =
2 5 8
>> C=10:-3:0 % 数组元素从10到0,每次变化-3
C =
10 7 4 1
3、通过logspace函数创建一维数组
y=logspace(a,b):该函数创建行向量y,第一个元素为10^a,最后一个元素为10^b,形成总数为50个元素的等比数列。
y=logspace(a,b,n):该函数创建行向量y,第一个元素为10^a,最后一个元素为10^b,形成总数为n个元素的等比数列。
>> y=logspace(1,2) % 创建10^1到10^2之间,共50个元素的等比数列
y =
1 至 7 列
10.0000 10.4811 10.9854 11.5140 12.0679 12.6486 13.2571
8 至 14 列
13.8950 14.5635 15.2642 15.9986 16.7683 17.5751 18.4207
15 至 21 列
19.3070 20.2359 21.2095 22.2300 23.2995 24.4205 25.5955
22 至 28 列
26.8270 28.1177 29.4705 30.8884 32.3746 33.9322 35.5648
29 至 35 列
37.2759 39.0694 40.9492 42.9193 44.9843 47.1487 49.4171
36 至 42 列
51.7947 54.2868 56.8987 59.6362 62.5055 65.5129 68.6649
43 至 49 列
71.9686 75.4312 79.0604 82.8643 86.8511 91.0298 95.4095
50 列
100.0000
>> y=logspace(1,2,20) % 创建10^1到10^2之间,共20个元素的等比数列
y =
1 至 7 列
10.0000 11.2884 12.7427 14.3845 16.2378 18.3298 20.6914
8 至 14 列
23.3572 26.3665 29.7635 33.5982 37.9269 42.8133 48.3293
15 至 20 列
54.5559 61.5848 69.5193 78.4760 88.5867 100.0000
4、通过linspace函数创建一维数组
y=linspace(a,b):该函数创建行向量y,第一个元素为a,最后一个元素为b,形成总数为100个元素的等差数列。
y=linspace(a,b,n):该函数创建行向量y,第一个元素为a,最后一个元素为b,形成总数为n个元素的等差数列。
>> y=linspace(1,50) % 创建从1到50,元素个数为100的等差数列
y =
1 至 7 列
1.0000 1.4949 1.9899 2.4848 2.9798 3.4747 3.9697
8 至 14 列
4.4646 4.9596 5.4545 5.9495 6.4444 6.9394 7.4343
15 至 21 列
7.9293 8.4242 8.9192 9.4141 9.9091 10.4040 10.8990
22 至 28 列
11.3939 11.8889 12.3838 12.8788 13.3737 13.8687 14.3636
29 至 35 列
14.8586 15.3535 15.8485 16.3434 16.8384 17.3333 17.8283
36 至 42 列
18.3232 18.8182 19.3131 19.8081 20.3030 20.7980 21.2929
43 至 49 列
21.7879 22.2828 22.7778 23.2727 23.7677 24.2626 24.7576
50 至 56 列
25.2525 25.7475 26.2424 26.7374 27.2323 27.7273 28.2222
57 至 63 列
28.7172 29.2121 29.7071 30.2020 30.6970 31.1919 31.6869
64 至 70 列
32.1818 32.6768 33.1717 33.6667 34.1616 34.6566 35.1515
71 至 77 列
35.6465 36.1414 36.6364 37.1313 37.6263 38.1212 38.6162
78 至 84 列
39.1111 39.6061 40.1010 40.5960 41.0909 41.5859 42.0808
85 至 91 列
42.5758 43.0707 43.5657 44.0606 44.5556 45.0505 45.5455
92 至 98 列
46.0404 46.5354 47.0303 47.5253 48.0202 48.5152 49.0101
99 至 100 列
49.5051 50.0000
>> y=linspace(1,50,10) % 创建从1到50,元素个数为10的等差数列
y =
1 至 7 列
1.0000 6.4444 11.8889 17.3333 22.7778 28.2222 33.6667
8 至 10 列
39.1111 44.5556 50.0000
数组的常见运算
1、数组的算术运算
在MATLAB中,一维数组的算术运 算包括加、减、乘、左除、右除和乘方。
如果两个数组的维数不相同,则将给出错误的信息。
如运算符为 + ,- ,.* ,./ ,.\ ,.^ 则将数组的每个元素对应计算。
右除和左除的关系:A./B=B.\A,其中A是被除数,B是除数。
如运算符为 * ,/ 则等效于矩阵的乘除运算(此时数组元素必须符合矩阵运算的规则)。
2、点积运算(dot 函数)
语法1:C = dot ( A , B )
说明:返回 A 和 B 的标量点积。如果 A 和 B 是向量,则它们的长度必须相同。如果 A 和 B 为矩阵或多维数组,则它们必须具有相同大小。
>> A = [4 -1 2];
>> B = [2 -2 -1];
>> C = dot(A,B) % 计算规则:C = A(1)*B(1) + A(2)*B(2) + A(3)*B(3)
c=
8
>> A = [1 2 3;4 5 6;7 8 9];
>> B = [9 8 7;6 5 4;3 2 1];
>> C = dot(A,B) % 计算规则:C(1) = 54 是 A(:,1) 与 B(:,1) 的点积
% 即矩阵的第 1 列依次相乘后求和
C =
54 57 54
语法2:C = dot ( A , B , dim )
说明:计算 A 和 B 沿维度 dim 的点积。dim 输入是一个正整数标量。dim为 1 时,计算并返回对应列的点积。dim为 2 时,计算并返回对应行的点积。
>> A = [1 2 3;4 5 6;7 8 9];
>> B = [9 8 7;6 5 4;3 2 1];
>> C = dot(A,B,1) % 计算规则:C(1) = 54 是 A(:,1) 与 B(:,1) 的点积
% 即 A、B 矩阵的第 1 列依次相乘后求和
C =
54 57 54
>> D = dot(A,B,2) % 计算规则:D(1) = 46 是 A(1,:) 与 B(1,:) 的点积。
% 即 A、B 矩阵的第 1 行依次相乘后求和
D =
46
73
46
3、数组的关系运算
逐一比较两个数组相同位置的元素,并给出比较结果。最终的关系运算结果是一个与参与比较的数组维数相同的数组,其组成元素为0或1。
>> A=[ 1 5 6 8 9 6 ] ;
>> B=[ 9 5 6 2 4 0 ] ;
>> C=A<B
C=
1 0 0 0 0 0
4、数组的逻辑运算
逐一比较两个数组相同位置的元素,并给出比较结果。最终的逻辑运算结果是一个与参与比较的数组维数相同的数组,其组成元素为0或1。
>> A=[ 1 5 6 8 9 6 ] ;
>> B=[ 9 5 6 2 4 0 ] ;
>> C=A&B
C=
1 1 1 1 1 0