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种格式: