在《MATLAB通过下标访问数组元素》中我们讲解了如何通过下标来访问数组中的某一个元素,除此之外,MATLAB 还允许通过下标一次性访问多个元素。
MATLAB 允许使用冒号:指定下标的范围,格式为:
其中,m 表示起始下标,n 表示结束下标,step 表示步长。
step 可以省略,此时采用默认的步长 1,也即写成下面的形式:
这个时候 m 和 n 又可以同时省略,也就是只写一个:,表示从 1 到 end 的所有下标。
【实例1】访问一维数组元素时使用冒号:
>> A=[88, 4, 62, 15, 100, 9, 26, 7]
A =
88 4 62 15 100 9 26 7
>> A(2:6) %访问下标 2~6 的元素
ans =
4 62 15 100 9
>> A(4:end) %访问下标 4~end 的元素
ans =
15 100 9 26 7
>> A(2:2:7) %访问下标 2~7 的元素,步长为2
ans =
4 15 9
>> A(1:2:end) %访问所有下标为奇数的元素
ans =
88 62 100 26
>> A(:) %访问所有元素
ans =
88
4
62
15
100
9
26
7
【实例2】访问二维数组下标时使用冒号:
>> B=[8,1,6,100,72; 3,55,70,33,305; 4,9,2,10,69; 82,7,18,88,44]
B =
8 1 6 100 72
3 55 70 33 305
4 9 2 10 69
82 7 18 88 44
>> B(1:3, 2:4) %访问 1~3 行,2~4 列的元素
ans =
1 6 100
55 70 33
9 2 10
>> B(1:2:end, :) %访问所有奇数行元素
ans =
8 1 6 100 72
4 9 2 10 69
>> B(:, 3) %访问第3列元素
ans =
6
70
2
18
>> B(2, :) %访问第2行元素
ans =
3 55 70 33 305
这里说的是行向量,也就是一维数组。
使用向量指明下标范围时,每一个向量的元素就表示一个具体的下标。换句话说,将你想要访问的元素的下标一一写到向量里面即可。具体格式如下:
i、j、k 表示某个具体的下标,它们由逗号,分隔,由方括号[ ]包围。
下面我们举例说明:
%一维数组
>> A=[88, 4, 62, 15, 100, 9, 26, 7]
A =
88 4 62 15 100 9 26 7
>> A([1,5,6]) %访问下标为 1、5、6 的元素
ans =
88 100 9
>> A([4,5,8]) %访问下标为 4、5、8 的元素
ans =
15 100 7
%二维数组
>> B=[8,1,6,100,72; 3,55,70,33,305; 4,9,2,10,69; 82,7,18,88,44]
B =
8 1 6 100 72
3 55 70 33 305
4 9 2 10 69
82 7 18 88 44
>> B([1,2,4], [2,4]) %访问第 1、2、4 行,第 2、4 列的元素
ans =
1 100
55 33
7 88
>> B([2,4], 3:5) %同时使用向量和冒号
ans =
70 33 305
18 88 44