一、数组索引
单下标索引:针对向量的索引
>> a = [1 2 3]
a = 1 2 3
%%索引一个元素
>> a(2)
ans = 2
%% 索引多个元素
>> a([2 3])
ans = 2 3
线性索引:针对矩阵的索引
Matlab将数组视为单列向量,其中每一列附加到前一列的底部,按照对单列向量的索引方式进行索引。
>> A = [1:3;4:6;7:9]
A =
1 2 3
4 5 6
7 8 9
%% 索引第五个元素
>> A(5)
ans = 5
多下标索引:针对矩阵的索引
>> A = [1 2 3;4 5 6]
A =
1 2 3
4 5 6
%% 索引第二列元素
>> A(:,2)
ans = 2 5
%% 索引第二行元素
>> A(2,:)
ans = 4 5 6
%% 索引第一列与第二列元素,构成矩阵
>> A(:,[1 3])
ans =
1 3
4 6
二、逻辑索引
逻辑索引时,对应的逻辑数组中元素为1(Boolean为真)的位置被索引形成列向量。
>> A = [1 1 0;1 1 1;0 0 0]
A =
1 1 0
1 1 1
0 0 0
>> B = logical(A)
B =
1 1 0
1 1 1
0 0 0
>> C = [2 3 4;5 6 7;9 10 8]
C =
2 3 4
5 6 7
9 10 8
>> C(A)
Error
>> C(B)
ans =
2
5
3
6
7
注意:逻辑数组与被索引数组要求同形即行数与列数的维度对应,才是有意义的。