Matlab-结构数组
1 认识结构数组
结构也是一种数据类型,它的每一个元素都有一个名字。称结构中的元素为域。
类似与C语言中的结构体。
2 创建
两种方法:
(1)用赋值语句创建
(2)用函数 struct 函数进行创建
2.1 赋值语句创建
student.name="Li Ming";
student.addr="123 Street";
student.city='ShangHai';
student.zip="123456";
student.age=23;
结果:
>> studentstudent = 包含以下字段的 struct:name: "Li Ming"addr: "123 Street"city: 'ShangHai'zip: "123456"age: 23
2.2 struct 函数创建
函数 struct 允许用户预分配一个结构数据。它的基本形式如下:
structure_array = struct('field1', var1, 'field2', val2, ...)
举例:
struct_student=struct('name',"Li Ming",'addr',"123 Street",'city','ShangHai','zip',"123456",'age',23);
结果:
>> struct_studentstruct_student = 包含以下字段的 struct:name: "Li Ming"addr: "123 Street"city: 'ShangHai'zip: "123456"age: 23
3 增加删除域
3.1 增加域
如果一个新的域名在结构数组中的任意一个元素中被创建,那么这个域将会增加到数组的所有元素中去。
struct_student=struct('name',"Li Ming",'addr',"123 Street",'city','ShangHai','zip',"123456",'age',23);
%增加域
struct_student.exams=[90,89,65];
结果:
>> struct_studentstruct_student = 包含以下字段的 struct:name: "Li Ming"addr: "123 Street"city: 'ShangHai'zip: "123456"age: 23%增加域exams后
>> struct_studentstruct_student = 包含以下字段的 struct:name: "Li Ming"addr: "123 Street"city: 'ShangHai'zip: "123456"age: 23exams: [90 89 65]
3.2 删除域rmfield()
方法:
struct2 = rmfield(struct_array, 'field')
示例:
%建立结构体
struct_student=struct('name',"Li Ming",'addr',"123 Street",'city','ShangHai','zip',"123456",'age',23);
%增加域
struct_student.exams=[90,89,65];
%删除域
struct_student_refield=rmfield(struct_student,'zip');
结果:
>> struct_studentstruct_student = 包含以下字段的 struct:name: "Li Ming"addr: "123 Street"city: 'ShangHai'zip: "123456"age: 23exams: [90 89 65]>> struct_student_refieldstruct_student_refield = 包含以下字段的 struct:name: "Li Ming"addr: "123 Street"city: 'ShangHai'age: 23exams: [90 89 65]
4 访问
(1)访问内容
>> struct_studentstruct_student = 包含以下字段的 struct:name: "Li Ming"addr: "123 Street"city: 'ShangHai'zip: "123456"age: 23exams: [90 89 65]
>> struct_student.nameans = "Li Ming">> struct_student.examsans =90 89 65>> struct_student.exams(2)ans =89
>> mean(struct_student.exams)ans =81.3333
(2)访问域名
>> names=fieldnames(student)names =5×1 cell 数组{'name'}{'addr'}{'city'}{'zip' }{'age' }
5 读取函数getfield和修改函数setfield
(1)getfield函数:field_index 和 array_index 是可选择性,array_index 用于创建1×1 结构数组
f = getfield(array,{array_index},'field',{field_index})
举例:获取student(1)的zip
>> zip1 = getfield(student,{1},'zip')zip1 = "123456"
(2)setfield 函数:field_index 和array_index 都是可选择性参数,array_index 用于创建1×1 结构数组
f = setfield(array,{array_index},'field',{field_index},value)
6 应用
建立好几个同学的信息,可以通过再结构名签加下标的方式实现,没有被初始化的域将包含一个空数组,在后面我们可以用赋值语句来初始化这个域:
student.name="Li Ming";
student.addr="123 Street";
student.city='ShangHai';
student.zip="123456";
student.age=23;student(2).name="Li Yang";
student(3).name="Cheng Xiaoxiao";
结果:
>> studentstudent = 包含以下字段的 1×3 struct 数组:nameaddrcityzipage>> student(1)ans = 包含以下字段的 struct:name: "Li Ming"addr: "123 Street"city: 'ShangHai'zip: "123456"age: 23>> student(2)ans = 包含以下字段的 struct:name: "Li Yang"addr: []city: []zip: []age: []>> student(3)ans = 包含以下字段的 struct:name: "Cheng Xiaoxiao"addr: []city: []zip: []age: []
附1 支持struct的函数
Matlab-结构数组相关推荐
- matlab单元数组和结构,Matlab使用单元数组和结构数组
Matlab使用字符串数组.单元数组(cell array)和结构数组 (struct array) 要在MALTAB中实现比较复杂的编程,就不能不用单元数组(cell array)和结构数组(str ...
- matlab单元数组和结构,Matlab中单元数组和结构数组
前言: 单元数组和结构数组是一种新的数据类型,能将不同类型.不同维数的数组组合在一起,从而方便对不同的数据类型方便管理和维护. 如上图所示的2*2矩阵中,分别存储着四种不同的数据类型,分别为数组.字符 ...
- matlab 结构(struct)数组,matlab 结构(struct)数组
4. 3.2 结构数组的操作 MATLAB中专门用于对结构数组的操作的函数并不多,通过 help datatypes获取数据类型列表,可以看到其中的结构数据类型的有关的函数,主要如表4.3.1所示. ...
- matlab结构体如何引用,matlab结构体数组引用
函数来构造 table 对象 o 通过转换函数构造 table 对象 访问 table 中的数据 MATLAB 常用基本数据类型有:整型,浮点型,字符型,函数句柄,元胞数组和 结构体数组.... 结构 ...
- matlab 结构体 单元数组,matlab结构体、数组和单元数组类型的创建
matlab结构体.数组和单元数组类型的创建 @ matlab结构体类型 通过字段赋值创建结构体 创建格式: 结构体名称.字段名称 样例: >> student.name='Alan'; ...
- matlab里数组的赋值,arrays – MATLAB结构赋值数组
我有一系列结构.让我们说 s(1).value,-,s(5).value. 我有一个值向量,让我们说vals = [1 2 3 4 5],我想分配给结构数组.所以用伪代码写我想要:s(:).value ...
- matlab mex 矩阵,如何从mex函数访问matlab结构字段中的矩阵?
如何从mex函数访问matlab结构字段中的矩阵? 我试图弄清楚如何从mex函数访问存储在matlab结构中的字段中的矩阵. 那真是漫长的缠绕...让我解释一下: 我有一个定义如下的matlab结构: ...
- 转载:[Matlab]结构体(Struct)
转载:https://blog.csdn.net/m0_37407756/article/details/70045209 要在MALTAB中实现比较复杂的编程,就不能不用struct类型.而且在MA ...
- matlab细胞数组类型建立及操作
细胞数组结构图: 细胞数组中每个细胞存储一种类型的MATLAB数组,此数组中的数据可以是任何一种MATLAB数据类型或用户自定义的类型,其大小也可以是任意的.相同数组的第二个细胞的类型与大小可以和第一 ...
- Matlab 结构体(struct)使用
转自http://blog.sina.com.cn/s/blog_468651400100c6c0.html 要在MALTAB中实现比较复杂的编程,就不能不用struct类型.而且在 MATLAB中实 ...
最新文章
- SUPPORTDIR引用的文件的加入
- 程序员如何保持身心健康,做到这几点,远离秃头。
- arm-linux-gcc 没有那个文件或目录
- 简单方法解决bootstrap3 modal异步加载只一次的问题
- 《Android Jetpack》— Android 书籍
- php如何触发html,html想触发php函数可以吗?
- 详细解析Photoshop10个必学的抠图技巧
- 【Java基础】使用NumberFormat 、DecimalFormat进行数字格式化
- linux虚拟文件系统proc
- 基于ESXi虚拟服务器搭建
- camera成像能力-清晰度(Resolution,Sharpen)
- Linux vps 主机有免费稳定的推荐吗?
- python基本类型关键字_python基本类型关键字_python中的关键字---1(基础数据类)...
- python的spider程序下载_Python Spider
- 质因数分解,(结果简化版)
- 交换机的几种配置方法
- 有趣的海盗分金问题(博弈论)
- redis incr mysql_redis命令_INCR
- Postman使用技巧之三:用Postman生成Request代码
- 1951-2021年高考数学试题