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 访问
与创建的方式类似