Matlab基础:数组及其引用
序言:
首先明确一点,Matlab中的数组是按列存储的。
其次,Matlab中数组引用主要有三种方法:
1.下标法(subscripts):用逗号隔开,两部分组成
2.索引法(index):只有一部分组成
3.布尔法(boolean)
对于Matlab中的一个二维数组来说: 如下
其元素存储依次为 8 3 4 1 5 9 6 7 2。详细参考下图。
注意下标和索引的区别,Matlab中每一个元素都有一个唯一的ID,即index。
下面来详述每一种数组引用方法的具体使用:
1.下标法(subscripts)
例如a(i,j),其中i,j可以是一维向量、标量,‘:’,“end”。注意Matlab中的下标可以是多行多列同时引用。
(1)a(1:2,3:-1:1) :表示数组中第1~2行,第3~1列中的元素。
(2)a(:,end):表示引用最后一列的元素;其中end表引用最后一行/列,end-n表引用最后n行/列。
(3)a([2 1 3 2],[1 2 3]):表引用两个向量映射的的元素,即a(2,1),a(2,2)... ...组成的4*3的矩阵。
具体如下:
2.索引法(index)
(1)a(index) :其中index可以是任意的数组,但index中的元素必须是正整数,且不大于numel(a) 【numel(a)返回a中元素的个数】,a(index)返回的是一个与index大小一样的数组。
(2)a([3 4 2 1 5]) :依次引用a中的第3,4,2,1,5个元素。
(3)a([3,1,2;2,1,4;5,6,7]) :引用对应索引的元素,并返回一个3*3的矩阵。
(4)a(:) : 把数组a转换成列向量。
具体如下:
3.布尔法
a(x):x是由0和1组成的布尔类型数据,且size(a) = size(x),对应位置为1,则该位置数据被引用,否则不被引用。最后按照a中的存储顺序,返回一个列向量。