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中的存储顺序,返回一个列向量。

经验分享 程序员 微信小程序 职场和发展