Matlab的基本数据结构

基本上,Matlab有3种数据结构,数组,元胞数组(cell)和结构体(struct)。

1 数组

在同一个数组的的数据元素类型必须相同

1.1 一维数组(向量)

1.1.1 创建

(1)直接赋值法:x = [1 2 3 4] %每个数据元素之间有空格或逗号

(2)冒号法:x =a : step : b ,a,b为数组元素起止值,step为数组元素间距值,可以省略不写默认为1

(3)等距函数生成法:x = linspace(a,b,n),a,b为数组元素起止值等分为n份,默认值是100可省略不写

(4)对数函数生成法:x = logspace(a,b,n),a,b为数组元素起止值等分为n份,默认值是50可省略不写

1.1.2 访问

数组最寻常的寻访方式就是根据下标寻访,有以下几种方式:

x = [1 2 3 4] %下标都是从1开始
x(2) = 2
x(1:3) = [1,2,3] %生成子数组
x(2:end) = [2,3,4]%end表数组最后一个元素的位置
x(3:-1:1) = [3,2,1]%负数倒叙排
x(find(x>2)) = [3,4]
x([1 2 3 3 2 1]) = [ 1 2 3 3 2 1]%对元素可重复寻访
x([1 2 ]) = [11 22] % x = [11 22 3 4 5]可以这样为元素赋值

1.2二维数组(矩阵)

当二维数组带有线性变换的含义时,二维数组就可以看成一个矩阵

1.2.1 创建

x = [1,2,3;4,5,6;7,8,9] %3*3矩阵

1.2.2 访问

几个特殊的表示方式:

x([1,2],[3]) %表示x矩阵的第1,2行的第3列
x(:,2)%表示所有行的第二列
x(:)%表示转换成列向量

2 元胞数组(cell)

这个也是数组,但是这种数组可以容纳不同数据类型的元素

2.1 创建

构造单元数组有左标记法和右标记法,{}是单元数组的标志。

例如创建一个2*2的单元数组c,

左标志法:

c{1,1} = [1,2]
c{1,2} = [‘nih’]
c{2,1} = eye(3)
c{2,2} = {1:4}

右标志法:

c(1,1) = {1,2}
c(1,2) = {‘nih’}
c(2,1) = {eye(3)}
c(2,2) = {1:4}

12.2 访问

用左标记的方式访问。

2.3 删除元素

c{1,1}={[]}

2.4 函数支持

3 结构体(struct)

与C语言的结构体性质类似,就是属性的集合。

3.1 创建

person.name = 'Clayton'

person.score = 98.5

3.2 访问

与创建的方式类似