文章目录

  • 语法
  • 说明
  • 输入参数
  • 示例
    • 例1: 在结构体中存储相关数据变量
    • 例2: 具有一个字段的结构体
    • 例3: 具有多个字段的结构体
    • 例4: 带有空字段的结构体
    • 例5: 包含元胞数组的字段
    • 例6: 空结构体
    • 例7: 嵌套结构体

语法

s = struct
s = struct(field,value)
s = struct(field1,value1,...,fieldN,valueN)
s = struct([])
s = struct(obj)

说明

s = struct    %创建不包含任何字段的标量 (1×1) 结构体。
s = struct(field,value)
%创建具有指定字段和值的结构体数组。
%value 输入参数可以是任何数据类型,例如数值、逻辑值、字符或元胞数组%如果value不是元胞数组,或者value是标量元胞数组,则s是标量结构体
%例如,s = struct('a',[1 2 3]) 创建一个1×1结构体,其中s.a = [1 2 3]%如果value是非标量元胞数组,则s是维度与value相同的结构体数组。s的每个元素包含 value 的对应元素
%例如,s = struct('x',{'a','b'},'y','c') 返回 s(1).x = 'a'、s(2).x = 'b'、s(1).y = 'c' 和 s(2).y = 'c'%如果value是空元胞数组 {},则 s 是空 (0×0) 结构体
s = struct(field1,value1,...,fieldN,valueN) 创建多个字段
%集合value1,...,valueN中的任何非标量元胞数组必须具有相同的维度%如果value的所有输入都不是元胞数组,或者value中作为元胞数组的所有输入都是标量,则s是标量结构体%如果所有value输入都是非标量元胞数组,则s具有与非标量元胞数组相同的维度
%对于类型为标量元胞数组或任何其他数据类型的数组的任何 value,struct将value 的内容插入s的所有元素的相关字段中%如果任何value输入是空元胞数组{},则输出s是空 (0×0) 结构体
%要指定一个空字段并保留其他字段的值,请改用[]作为value输入
s = struct([]) 创建不包含任何字段的空 (0×0) 结构体
s = struct(obj) 创建包含与 obj 的属性对应的字段名称和值的标量结构体
%struct 函数不会转换 obj,而是将 s 创建为一个新的结构体。此结构体不保留类信息,因此专用、受保护和隐藏的属性在 s 中变为公共字段
%struct 函数在您使用此语法时会发出警告

输入参数

filed :字段名称
字段名称,指定为字符向量或字符串标量。有效字段名称以字母开头,可以包含字母、数字和下划线。字段名称的最大长度是 namelengthmax 函数返回的值

value:值
值,指定为任何类型的数组。如果 value 有任何输入是非标量元胞数组,则所有非标量元胞数组输入必须具有相同的维度。如果 value 有任何输入是空元胞数组 {},则输出是空结构体数组。要指定单个空字段,请使用 []。

obj:对象
对象,指定为标量或对象数组。struct 函数将 obj 的属性复制到新标量结构体的字段中。struct 函数不能基于大多数基本数据类型创建结构体。例如,如果 obj 具有 double 或 char 数据类型,则 struct 会发出错误消息。但是,struct会将表或时间表的属性以结构体形式返回。

示例

例1: 在结构体中存储相关数据变量

%通过使用圆点表示法添加字段来创建一个结构体
data.x = linspace(0,2*pi);
data.y = sin(data.x);
data.title = 'y = sin(x)'

结果如下所示:

%绘制正弦波,这里按字段名称引用 x 和 y 值的数组,然后添加标题
plot(data.x,data.y)
title(data.title)

结果如下所示:

例2: 具有一个字段的结构体

%创建包含一个字段的非标量结构体
field = 'f';
value = {'some text';[10, 20, 30];magic(5)};
s = struct(field,value)
%查看每个元素的内容
s.f

结果如下所示:

%访问非标量结构体的字段(例如 s.f)时,MATLAB返回一个逗号分隔的列表
%在本示例中,s.f 等效于 s(1).f, s(2).f, s(3).f

例3: 具有多个字段的结构体

field1 = 'f1';  value1 = zeros(1,10);
field2 = 'f2';  value2 = {'a', 'b'};
field3 = 'f3';  value3 = {pi, pi.^2};
field4 = 'f4';  value4 = {'fourth'};s = struct(field1,value1,field2,value2,field3,value3,field4,value4)
%value2 和 value3 的元胞数组是 1×2 数组,因此 s 也是 1×2 数组
%因为 value1 是数值数组而不是元胞数组,所以 s(1).f1 和 s(2).f1 具有相同的内容
%类似地,因为 value4 的元胞数组具有单一元素,所以 s(1).f4 和 s(2).f4 具有相同的内容

结果如下所示:

例4: 带有空字段的结构体

%创建包含一个空字段的结构体。使用 [] 指定空字段的值
s = struct('f1','a','f2',[])

结果如下所示:

例5: 包含元胞数组的字段

field = 'mycell';
value = {{'a','b','c'}};
s = struct(field,value)

结果如下所示:

例6: 空结构体

%创建包含多个字段的空结构体
s = struct('a',{},'b',{},'c',{})

结果如下所示:

例7: 嵌套结构体

%创建一个嵌套结构体,其中a是具有一个字段的结构体,该字段又包含另一个结构体
a.b = struct('c',{},'d',{})
%查看 a.b 的字段的名称
fieldnames(a.b)

结果如下所示:

MATLAB struct函数(结构体数组)相关推荐

  1. C/C++结构体struct 与结构体数组和枚举型enum的结合使用

    C/C++结构体struct 与结构体数组和枚举型enum的结合使用 #include "stdafx.h" #include <string> #include &l ...

  2. MATLAB中的结构体数组(struct)学习笔记

    不要失却热情,不要丢掉冠军的心! MALAB中的结构体(struct)数组学习笔记 前言 1. 版本 2. 关键词 一.Struct结构体数组概述 二.Struct结构体数组基本用法 1. 结构体的创 ...

  3. C++ STL函数 结构体数组sort()排序(henu.hjy)

    对于C++中sort()需要加入 #include <algorithm>该头文件 sort(首地址[必填],尾地址[必填],排序cmp函数[选填]) sort对于基本数据类型默认从小到大 ...

  4. 初识C语言(1)(2)(3)(4) C语言入门 保姆级教程 变量 常量 字符串 转义字符 操作符 关键字 字符串 指针 函数 结构体 数组 选择语句 循环语句

    一.如何写C语言代码 1.编译器 2.创建项目 3.创建源文件 4.写代码 5.编译+链接+运行 项目名字不要汉语,不要特殊字符,不要加空格,项目路径一般为你想要的路径 C语言中,一般创建.c源文件, ...

  5. matlab结构体构建,matlab 怎么建立结构体数组?

    初识 Html5 1.1认识HTML5 HTML5并不仅仅只是做为HTML标记语言的一个最新版本,更重要的是它制定了Web应用开发的一系列标准,成为第一个将Web做为应用开发平台的HTML语言. HT ...

  6. Matlab 结构体数组 基础知识 struct(自学文档)

    struct 结构体数组 全页展开 说明 结构体数组是使用名为字段的数据容器将相关数据组合在一起的数据类型.每个字段都可以包含任意类型的数据.可以使用 structName.fieldName 格式的 ...

  7. c/c++教程 - 1.10 结构体 使用typedef定义struct结构体 结构体数组 结构体指针 结构体嵌套 结构体做函数参数 结构体const

    十二.结构体 (1)结构体定义和使用 基本概念:结构体属于用户自定义的数据类型,允许用户存储不同的数据类型. 参考视频:https://www.bilibili.com/video/BV1et411b ...

  8. matlab单元数组与结构体的区别,MATLAB中的结构体和单元数组

    MATLAB中的结构体和单元数组 一.结构: x.real=10 x.imag=5 增加字段 x.scale=1 使用struct函数 s=struct('field1',values1,'field ...

  9. c语言调用dll实例 结构体传参,Matlab调用Dll,对于自定义结构体数组如何传参? - 程序语言 - 小木虫 - 学术 科研 互动社区...

    %[例子1] % Matlab调用DLL,整形数组传参 v = [1,22,33;44,-56,67]; pv = libpointer('int16Ptr',v); m = get(pv,'Valu ...

  10. matlab结构体如何引用,matlab结构体数组引用

    函数来构造 table 对象 o 通过转换函数构造 table 对象 访问 table 中的数据 MATLAB 常用基本数据类型有:整型,浮点型,字符型,函数句柄,元胞数组和 结构体数组.... 结构 ...

最新文章

  1. 各类木材强度_层状磷酸锆/ 聚磷酸铵复合阻燃剂对木材的阻燃抑烟性能研究
  2. 根据值 加密后的值 算出key_Bugku:加密 rsa
  3. 2021年春季学期-信号与系统-第四次作业参考答案-第十二小题
  4. python-实现单链表
  5. Android中ExpandableListView的使用
  6. 计算机视觉:单阶段目标检测模型YOLO-V3
  7. 机器学习——人工神经网络之发展历史(神经元数学模型、感知器算法)
  8. python pdfminer解析pdf文件的每一行,得到每一行的坐标与每个字符的坐标
  9. 这脑洞绝了!中美合拍动画《哪吒与变形金刚》来了
  10. android地图定位到海洋,GPS定位技术进行高精度海洋定位的应用
  11. SQL性能优化常见措施(Lock wait timeout exceeded)
  12. tmp name php,linux环境 上传文件失败 tmp_name为空
  13. 西方新冠疫苗有效率的数据
  14. 中文圣经 for Android
  15. 可以退税吗_个人所得税APP详细操作步骤来了!你成功“退税”了吗?
  16. matlab besselh,关于用matlab求bessel函数零点
  17. 动画交互设计与技术实现
  18. Spring详解一号IOC京都大火篇
  19. axure原型怎么让文字自动换行_Axure动态面板教程(快速入门+轮播图案例)
  20. C语言-- 输出大写英文字母

热门文章

  1. SpringBoot+Editormd实现markdown文本编辑和图片上传
  2. PS中部分常用快捷键整理
  3. Python 面向对象 计算长方体、四棱锥的表面积和体积
  4. 基于.net实现F4一键杀死指定进程(龙之谷秒掉器)
  5. 网页设计期末作品_平面、网页、UI设计师该如何做作品集?
  6. 基于ESXi虚拟服务器搭建
  7. 如何清除matlab工作区,matlab命令窗口中可用什么命令清除工作区中的变量
  8. 到底是什么决定了二极管的最高工作频率?
  9. 深入解析J.U.C并发包(二)——AtomicInteger类
  10. ansys分析遇到的几个问题解决方案【文件保存】【网格划分】【steps controls】【应力应变动画】【力负载】【干涉】【part打散】【merge合并】【分析计算量】