当前位置: 首页 > news >正文

Matlab自学笔记三十二:结构数组的连接、嵌套、引用变量值和访问字段值

1.结构数组的连接

结构数组必须具有相同的字段名才能连接,元素数目可以不同,某一元素添加字段,其他所有元素也具有了该字段,默认值为[],程序示例如下:

%创建3个结构数组student/stu/st

student.xingming='zhangsan';

student.xuehao='00001';

student.chengji=[1 2 3;4 5 6];

stu=struct('xingming','zhangsan','xuehao','00001','chengji',[1 2 3;4 5 6]);

student(2).xingming='lisi';

student(2).xuehao='00002';

student(2).chengji=[7 8 9;1 2 3]

stu(2)=struct('xingming','zhangsan','xuehao','00001','chengji',[1 2 3;4 5 6])

st(100,100)=struct('a',[])

%% 结构数组的连接

[student,stu]  %同为1*2结构数组,并且字段名相同,结果为1*4结构数组

% [student,st]  %维度不同且字段名不同,报错

2.结构数组的嵌套

程序示例如下:

student(1).stu=stu  %嵌套,理解:创建字段名stu,并把原结构数组stu作为字段值赋值给该字段名。给结构数组student的第1个元素student(1)添加stu字段,其他所有元素(如student(2))也会具有该字段

student(1).stu  %索引,查看第1个元素的stu字段名里的字段值(字段内容),结果为原stu数组

student(2).stu  %索引,结果是空矩阵,因为未指定该字段的值

%多级索引打开内部嵌套的字段值(理解:结构数组的索引,用圆点运算符(.)层层打开字段值,访问所需内容)

student(1).stu(1)  % student第一个元素的stu字段的第一个元素的值

student(1).stu(1).chengji  %进一步获取该元素的chengji字段的值

student(1).stu(1).chengji(1:3)  %进一步获取成绩值的第1-3元素

3.预留字段(添加新字段)

程序示例如下:

yuliuziduan='nianling'  %通过预留变量名的形式,给元素添加字段,字段名的赋值需字符型。

stu(1).(yuliuziduan)='nan'  %给包含多个元素的结构数组通过小括号+预留变量名的方式添加字段时,要指定具体元素,等号右侧赋字段值

%用途:当后面需要修改字段名时,不需再每处修改,而只修改预留变量所赋的值即可,树状图思想,预留变量作为中间值

stu(1).(yuliuziduan)  %小括号引用该预留变量代表的字段名,并索引该字段名的字段值,即nan

4.获取结构数组字段值

程序示例如下:

student.chengji  %索引student所有元素的chengji字段的值

v=student.chengji  %当只有一个输出参数v时,只返回第1个值

[v1,v2]=student.chengji  %若返回所有字段值,则指定相同个数的输出参数

v=[student(1).chengji,student(2).chengji]  %将多字段值存储在同一矩阵中,则先将字段值提取再矩阵连接。要求字段值数据类型相同,横纵连接符合矩阵连接的维度要求

更多精彩视频内容

Matlab自学笔记三十一:结构数组的创建、索引和预分配内存

Matlab自学笔记二十五:字符串的拆分和连接、换行符的使用

自学笔记十五:详谈Matlab中的Inf和NaN是什么鬼?

Matlab自学笔记五:创建矩阵、矩阵大小、维度、数目、空矩阵、标量、向量、创建矩阵的函数、数字序列

Matlab自学笔记三:创建脚本、M文件、运行脚本、注释、语法高亮、编程好习惯

23.1 一节入门Matlab拟合问题fit,建立预测变量与响应变量之间的关系(一般是函数关系)

11.18 Matlab非线性方程组和矩阵方程求解fsolve数学建模

31.6 Matlab绘制条形图柱状图,改变单个柱的颜色,堆叠显示,改变线型线宽

36.1 Matlab GUI 界面设计初学者光速入门

End

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Linux】线程——线程的概念、线程的特点、线程的优点和缺点、线程和进程、线程函数的使用
  • LabVIEW干涉仪测向系统
  • acwing 291.蒙德里安的梦想
  • back-end developer 后端开发的一些常识
  • Python入门 2024/7/3
  • 【数据结构与算法】希尔排序
  • Java | Leetcode Java题解之第212题单词搜索II
  • C# —— 日期对象
  • 首家!腾讯云数据万象通过中国信通院智能存储专项测试
  • Linux:DHCP服务配置
  • RedHat运维-Linux存储管理基础1-添加分区、文件系统、持续性挂载
  • 【昇思25天学习打卡营打卡指南-第十九天】基于MobileNetv2的垃圾分类
  • 何为vue脚手架?
  • 【数据结构与算法】快速排序双指针法
  • GPT-5 一年半后发布?对此你有何期待?
  • docker-consul
  • golang 发送GET和POST示例
  • Hexo+码云+git快速搭建免费的静态Blog
  • mysql innodb 索引使用指南
  • React16时代,该用什么姿势写 React ?
  • 阿里云前端周刊 - 第 26 期
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 关于使用markdown的方法(引自CSDN教程)
  • 经典排序算法及其 Java 实现
  • 每天一个设计模式之命令模式
  • 判断客户端类型,Android,iOS,PC
  • 入门级的git使用指北
  • 试着探索高并发下的系统架构面貌
  • 智能网联汽车信息安全
  • 《天龙八部3D》Unity技术方案揭秘
  • 交换综合实验一
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​如何使用QGIS制作三维建筑
  • #java学习笔记(面向对象)----(未完结)
  • ${ }的特别功能
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (day18) leetcode 204.计数质数
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (阿里云万网)-域名注册购买实名流程
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (剑指Offer)面试题34:丑数
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)JAVA中的堆栈
  • (转载)利用webkit抓取动态网页和链接
  • .net 程序发生了一个不可捕获的异常
  • .net 设置默认首页
  • .NET 使用 XPath 来读写 XML 文件