MATLAB通过下标访问多个数组元素

在《MATLAB通过下标访问数组元素》中我们讲解了如何通过下标来访问数组中的某一个元素,除此之外,MATLAB 还允许通过下标一次性访问多个元素。

使用冒号指明下标范围

MATLAB 允许使用冒号:指定下标的范围,格式为:

m : step : n

其中,m 表示起始下标,n 表示结束下标,step 表示步长。

step 可以省略,此时采用默认的步长 1,也即写成下面的形式:

m : n

这个时候 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 ...]

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