当前位置:网站首页>MATLAB程序设计与应用 2.7 结构数据与单元数据
MATLAB程序设计与应用 2.7 结构数据与单元数据
2022-08-03 10:30:00 【Ding Jiaxiong】
MATLAB程序设计与应用
2. 第2章 MATLAB数据及其运算
2.7 结构数据与单元数据
从MATLAB 5.0 开始,MATLAB新增加了两种数据类型:结构数据类型和单元数据类型。这两种数据类型均是将不同的相关数据集成到一个单一的变量中,使得大量的相关数据的处理与引用变得简单、方便。
2.7.1 结构数据
结构数据类型把一组类型不同而逻辑上相关的数据组成一个月机的整体,以便于管理和引用。例如要存储学生的基本信息就可采用结构数据类型。
结构矩阵的建立和引用
结构矩阵的元素可以是不同的数据类型,它能将一组具有不同属性的数据纳入到一个统:一的变量名下进行管理。建立一个结构矩阵可以采用给结构成员赋值的办法。
格式:
结构矩阵名.成员名 = 表达式表达式 → 矩阵表达式
建立含有3个元素的结构矩阵a
>> a(1).x1 = 10; a(1).x2 = 'liu'; a(1).x3 = [11,21;34,78]; >> a(2).x1 = 12; a(2).x2 = 'wang'; a(2).x3 = [34,191;27,578]; >> a(3).x1 = 12; a(3).x2 = 'cai'; a(3).x3 = [13,890;67,231];结构矩阵元素的成员也可以是结构数据。
>> a(2).x1.x11 = 90; >> a(2).x1.x12 = 12; >> a(2).x1.x13 = 30;对结构数据的引用,可以引用其成员,也可以引用结构矩阵的元素或结构变量。
>> a(2).x3 ans = 34 191 27 578 >> a(2) ans = 包含以下字段的 struct: x1: [1×1 struct] x2: 'wang' x3: [2×2 double] a = 包含以下字段的 1×3 struct 数组: x1 x2 x3引用结构矩阵元素的成员时,显示其值。引用结构矩阵元素时,显示成员名和它的值,但成员是矩阵时,不显示其具体内容,只显示成员矩阵大小参数。引用结构矩阵时,只显示结构矩阵的大小参数和成员名。
结构成员的修改
可以根据需要增加或者删除结构的成员。
给a中任意一个元素增加成员x4
>> a(1).x4 = '410075'; >> a(1) ans = 包含以下字段的 struct: x1: 10 x2: 'liu' x3: [2×2 double] x4: '410075'删除结构的成员,则可以使用rmfield函数完成。
>> a = rmfield(a , 'x4'); >> a a = 包含以下字段的 1×3 struct 数组: x1 x2 x3
2.7.2 单元数据
单元数据类型与结构数据类型类似,也是把不同属性的数据放在一个变量中。所不同的是,结构矩阵的各个元素下有成员,每个成员都有自己的名字,对成员的引用:结构矩阵名.成员名,而单元矩阵的各个元素就是不同类型的数据,用带有大括号下标的形式引用单元矩阵元素。
建立单元矩阵b
>> b = {10,'liu',[11,21;34,78];12,'wang',[34,191;27,578];14,'cai',[13,890;67,231]}
b =
3×3 cell 数组
{[10]} {'liu' } {2×2 double}
{[12]} {'wang'} {2×2 double}
{[14]} {'cai' } {2×2 double}
可以用带有大括号下标的形式引用单元矩阵元素
>> b{3,3}
ans =
13 890
67 231
单元矩阵的元素可以是结构或单元数据。
>> y.x1 = 34; y.x2 = 56;
>> b{3,4} = y;
>> b
b =
3×4 cell 数组
{[10]} {'liu' } {2×2 double} {0×0 double}
{[12]} {'wang'} {2×2 double} {0×0 double}
{[14]} {'cai' } {2×2 double} {1×1 struct}
可以使用celldisp 函数来显示整个单元矩阵。
>> celldisp(b)
b{1,1} =
10
b{2,1} =
12
b{3,1} =
14
b{1,2} =
liu
b{2,2} =
wang
b{3,2} =
cai
b{1,3} =
11 21
34 78
b{2,3} =
34 191
27 578
b{3,3} =
13 890
67 231
b{1,4} =
[]
b{2,4} =
[]
b{3,4} =
x1: 34
x2: 56
同样可以利用空矩阵删除单元矩阵中的元素
>> b(3) = []
b =
1×11 cell 数组
列 1 至 7
{[10]} {[12]} {'liu'} {'wang'} {'cai'} {2×2 double} {2×2 double}
列 8 至 11
{2×2 double} {0×0 double} {0×0 double} {1×1 struct}
b(3) = [] 之后,b变成一个行向量
b{3} = [] 是将b的第3个元素置为空矩阵,而不是删除它。
边栏推荐
猜你喜欢

Go操作Redis数据库

ECCV2022 | RU&谷歌:用CLIP进行zero-shot目标检测!

鸿蒙第四次

开源一夏 | 教你快速实现“基于Docker快速构建基于Prometheus的MySQL监控系统”

全新的Uber App设计

Regulation action for one hundred days during the summer, more than 700 traffic safety hidden dangers were thrown out

以网强算,中国移动算网建设激发澎湃能量

SQL教程之递归 CTE Common Table Expression

SQL试题

go泛型使用方法
随机推荐
HCIP第十七天笔记
2022年起重机械指挥培训试题模拟考试平台操作
分辨率_分辨率越高越好?手机屏幕分辨率多少才合适?现在终于搞清楚了[通俗易懂]
超详细的Asp.net使用SSL双向认证,一篇就够了
Promise 2: Key Questions
使用GBase 8c数据库的时候,遇到这种报错“[[email protected] ~]$ /home/gbase/script/gha_ctl install -p……
Recursive training
深度学习经典网络 -- Inception系列(稀疏结构)
MySQL中tinytext、text、mediumtext和longtext等各个类型详解[通俗易懂]
集成学习、boosting、bagging、Adaboost、GBDT、随机森林
2022.8.2-----leetcode.622
How to deal with this time of MySQL binlog??
自定义实现乘风破浪的小船
按位取反怎么运算_按位取反运算
出色的移动端用户验证
Can't get data for duplicate urls using Scrapy framework, dont_filter=True
VL53L0X V2 laser ranging sensor collects distance data serial output
With strong network, China mobile to calculate excitation surging energy network construction
js函数防抖和函数节流及其使用场景。
跨域问题的分析