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”表示最后一列或列,“en d-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