3.3构架数组

1、构架数组的创建

创建构架数组的方法有两种:

1)直接对“域”赋值创建构架数组;

2)利用构造函数struct创建构架数组。


(1)直接对“域”赋值创建构架数组

通过对构架数组的各个域进行赋值,即可创建构架数组,

其格式struct_name(record index).field_name=data创建单构架数组时,下标(record index)可以省略。

与C语言中的结构类似



(2)利用构造函数struct创建构造数组

利用构造函数struct创建构架数组的格式为

struct_name = struct('field',VALUES1,'field2',VALUES2,...)

其中field1、field2为构架数组struct_name的域,VALUES1、VALUES2为域中要存放的值。

各构架对应的VALUESi(i=1,2,3...n)必须为相同大小的标量元胞数组或单一值,一个特例就是VALUESi为空元胞数组。


2、构架数组的相关函数


3、构架数组的操作

(1)构架数组的收缩

有时需要从构架数组中删除一个构架。构架数组的收缩方法与已经学习过数值数组、元胞数组的收缩方法是类似的。


现构键了一个50个元素的构架数组,只有1号完全复制,50号赋值了一部分。其余都是空的,如student(2)

现要删除第50号,则对student(50)赋值为空[ ]



剩下49个了!

(2)获取构架数组中的域

获取构架数组中的域可以利用函数fieldnames来完成,其格式为NAMES=fieldnames(struct_name)

不知道构架数组里有哪些域的时候使用


并且可在原先存在的域的基础上,可以增加域

(3)向构架数组中添加新的域

有时需要向构架数组添加新的域来存储信息。比如,要向构架数组student中添加一个域department来存储学生的学院信息,并在学院下添加班级信息


按视频中方法好像有问题,我再研究一下

(4)删除构架数组中的域

不能利用赋空值的方式,要使用函数rmfield,其格式有两种:

struct_name = rmfield(struct_name,'field')

struct_name = rmfield(struct_name,{'field1','field2',...})

一次可以删除一个或多个域,要想删除多个域,则需要把多个域放在元胞数组里面。


删除子域的操作和删除域的操作基本相同,区别就是删除子域要制定具体的构架,具体等解决了添加子域的问题再来删除,啊哈哈


(5)获取构架数组中的域值

可以直接引用或利用函数getfield来获取构架数组中的域值,格式如下

直接引用struct_name(i,j).field_name(m,n);

利用getfield函数getfield(struct_name,{i,j},'field_name',{m,n}) 式中

(i,j)是构架的编号,(m,n)是域的编号,对于单构架数组来说(i,j)可以省略


(6)设置构架数组中的域值

就是输错了,要修改,有2种格式:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值