MATLAB数据结构

MATLAB有四种数据结构

1数组

1.1一维数组

注意在同一个数组的的数据元素类型必须相同(当然可以转化为同一高阶数据类型的可以放在同一个数组)
举个例子:
这样子写x = [1 3+5i]
输出结果是这样子:会全部转成复数形式
x =
1.0000 + 0.0000i 3.0000 + 5.0000i
如果这样子写: x = [1 ‘你还会’ 3+5i]
会报错:从 double 转换为 char 时出现以下错误:
复数值不能转换为字符

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寻访

可以用全下标寻访也可以用单下标寻访,后者适用于高维数组,全下标于单下标的转换,n*m维数组 x(i,j) = x((j-1)*m+i)
几个特殊的表示方式:
x([1,2],[3]) %表示x矩阵的第1,2行的第3列
ans =
3
6
x(:,2)%表示所有行的第二列
ans =
2
5
8
x(:)%表示转换成列向量
ans =
1
4
7
2
5
8
3
6
9

1.3逻辑数组

逻辑数组就是数组元素只能是0和1
例如下面这个,
a =
1 2 3
4 5 6
7 8 9
m = a>=4
m = %m就是逻辑数组
0 0 0
1 1 1
1 1 1
b = a(m)’

ans = %b表示的就是a中数组元素大于等于4的数组元素的行向量
4 7 5 8 6 9

1.3 细胞数组(单元数组)

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

1.3.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}

1.3.2寻访

例如c{2,1}(2,2) = 1,因为c{2,1}是一个3*3单位矩阵,再寻访里面的(2,2)位置的数组元素是1

1.3.3删除元素
c{1,1}={[]}
1.3.4单元数组函数

此处不想打字,直接上图
这里写图片描述
这里写图片描述
这里写图片描述

1.4结构数组

其实结构数组和c语言的结构数组性质类似,就是属性的集合

1.4.1生成

继续上图哈哈
第一种方式:
这里写图片描述
这里写图片描述
第二种:
这里写图片描述

1.4.2 寻访

例如 person(2).Name
person(1:2)这样子
还可以person.Name得到一个属性值数组

  • 11
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值