MATLAB 数组(Array)是一系列数据的集合,它所包含的每一份数据叫做数组元素(Element)。我们可以使用数组这个整体,也可以使用其中的一个或者多个元素。

要想使用数组元素,就得想办法访问(获取)它,MATLAB 提供了三种访问数组元素的方法:

数组元素的下标

在 MATLAB 中,数组元素的下标是从 1 开始的;而在 C/C++、Java、Python 等大部分编程语言中,数组元素的下标都是从 0 开始的。

从 1 开始符合人类的思维,从 0 开始符合计算机的思维。

通过下标访问数组元素

所谓下标,就是元素所在的行号和列号;对于一位数组,只有列号,没有行号。

通过下标访问一维数组元素的格式如下:

A(j)

A 是数组名,j 是列号。

通过下标访问二维数组元素的格式如下:

A(i, j)

A 是数组名,i 是行号,j 是列号。

i 和 j 都必须是大于等于 1 的整数,而且不能超过数组的总行数和总列数,也即:

1 ≤ i ≤ row

1 ≤ j ≤ column

如果你想访问最后一行或者一列的元素,可以将下标设置为end。

MATLAB 和其它编程语言的对比:

MATLAB 二维数组是按照列存储的,这一点和大部分编程语言都不一样;但是在通过下标访问数组元素时,要先写行号再写列号,这一点又和大部分编程语言是相同的。

大部分编程语言使用[ ]包围数组下标,比如 arr[10];而 MATLAB 使用( )包围数组下标,比如 A(10)。

访问一维数组的综合示例:

>> A = [23, 45, 8, 100, 63, 18]

A =

23 45 8 100 63 18

>> A(3)

ans = 8

>> A(1)

ans = 23

>> A(end) %访问最后一个元素

ans = 18

>> A(end-2) %访问倒数第3个元素

ans = 100

>> A(7) %数组下标太大

索引超出数组范围。

>> A(0) %数组下标太小

数组索引必须为正整数或逻辑值。

访问二维数组的综合示例:

>> B=[8,1,6; 3,5,7; 4,9,2]

B =

8 1 6

3 5 7

4 9 2

>> B(2,1)

ans = 3

>> B(2,end)

ans = 7

>> B(end, end)

ans = 2

>> B(4, 1)

位置 1 的索引超出数组范围(不能超过 3)。

>> B(2, 4)

位置 2 的索引超出数组范围(不能超过 3)。