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自学笔记三十一:结构数组的创建、索引和预分配内存](https://blog.csdn.net/freexyn/article/details/139726571 "Matlab自学笔记三十一:结构数组的创建、索引和预分配内存") [Matlab自学笔记二十五:字符串的拆分和连接、换行符的使用](https://blog.csdn.net/freexyn/article/details/135576518 "Matlab自学笔记二十五:字符串的拆分和连接、换行符的使用") [自学笔记十五:详谈Matlab中的Inf和NaN是什么鬼?](https://blog.csdn.net/freexyn/article/details/128891006 "自学笔记十五:详谈Matlab中的Inf和NaN是什么鬼?") [Matlab自学笔记五:创建矩阵、矩阵大小、维度、数目、空矩阵、标量、向量、创建矩阵的函数、数字序列](https://blog.csdn.net/freexyn/article/details/127195551 "Matlab自学笔记五:创建矩阵、矩阵大小、维度、数目、空矩阵、标量、向量、创建矩阵的函数、数字序列") [Matlab自学笔记三:创建脚本、M文件、运行脚本、注释、语法高亮、编程好习惯](https://blog.csdn.net/freexyn/article/details/126943555 "Matlab自学笔记三:创建脚本、M文件、运行脚本、注释、语法高亮、编程好习惯") 23.1 一节入门Matlab拟合问题fit,建立预测变量与响应变量之间的关系(一般是函数关系) 11.18 Matlab非线性方程组和矩阵方程求解fsolve数学建模 31.6 Matlab绘制条形图柱状图,改变单个柱的颜色,堆叠显示,改变线型线宽 36.1 Matlab GUI 界面设计初学者光速入门 **End**

相关推荐
电商API&Tina1 分钟前
跨境电商 API 对接指南:亚马逊 + 速卖通接口调用全流程
大数据·服务器·数据库·python·算法·json·图搜索算法
IT19952 分钟前
Qt笔记-使用SSH2进行远程连接linux服务器并上传文件
linux·服务器·笔记
LYFlied19 分钟前
【每日算法】LeetCode 1143. 最长公共子序列
前端·算法·leetcode·职场和发展·动态规划
长安er2 小时前
LeetCode 20/155/394/739/84/42/单调栈核心原理与经典题型全解析
数据结构·算法·leetcode·动态规划·
利刃大大2 小时前
【2025年度创作总结】从笔记到实践,从思考到生活融合
笔记·生活
MarkHD2 小时前
智能体在车联网中的应用:第28天 深度强化学习实战:从原理到实现——掌握近端策略优化(PPO)算法
算法
能源系统预测和优化研究2 小时前
【原创代码改进】考虑共享储能接入的工业园区多类型负荷需求响应经济运行研究
大数据·算法
航Hang*2 小时前
Photoshop 图形与图像处理技术——第1章:数字图像基本知识
图像处理·笔记·ui·photoshop
yoke菜籽2 小时前
LeetCode——三指针
算法·leetcode·职场和发展
小高不明3 小时前
前缀和一维/二维-复习篇
开发语言·算法