Matlab中数组元素引用(转)

1.下标法(subscripts)
2.索引法(index)
3.布尔法(Boolean)

在使用这三种方法之前,大家头脑一定要清晰的记住,Matlab中数组元素是按列存储(与Fortran一样),比如说下面的二维数组

A=
     8     1     6
     3     5     7
     4     9     2

Matlab的存储顺序是8,3,4,1,5,9,6,7,2,也就是说先行后列,对于3维数组呢,就是先行后列再页

对应个元素的索引和下标分别为

Element Index Subscripts
8        1      (1,1)
3        2      (2,1)
4        3      (3,1)
1        4      (1,2)
5        5      (2,2)
9        6      (3,2)
6        7      (1,3)
7        8      (2,3)
2        9      (3,3)

从上面的例子中已经很清晰的说明了下标和索引的区别了,也就是说Matlab为没有个元素分配了一个唯一识别的ID(即index)

1.下标法引用

A(ii,jj):其中ii和jj可以是一维向量、标量、“:”号或者“end”

大家对下标估计比较熟悉,由于在C语言中接触过,但是我这里需要强调的是,Matlab的下标是可以多行多列同时引用的,而像C语言等一次只能引用一个,比如

A(2:3,3:-1:1)表示引用数组中的2~3行,3~1列对应的元素
A(:,end)表示引用最后一列元素,“:”表示所有列或行,“end”表示最后一列或列,“end-n”表示倒数第n行或列
A(1,end-1)表示引用第1行倒数第2个元素
A([2 1 3 3],[1 1 2 2 1])表示引用按两个向量引用指定的元素,即A中的第2,1,3,3行和第1,1,2,2,1列对应的元素

>>A=magic(3)

A =
     8     1     6
     3     5     7
     4     9     2

>>A(2:3,3:-1:1)

ans =
     7     5     3
     2     9     4

>>A(:,end)

ans =
     6
     7
     2

>>A(1,end-1)

ans =
     1

>>A([2 1 3 3],[1 1 2 2 1])

ans =
     3     3     5     5     3
     8     8     1     1     8
     4     4   

你可能感兴趣的:(matlab)