当前位置:网站首页>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个元素置为空矩阵,而不是删除它。
边栏推荐
猜你喜欢
2022T电梯修理考试题及答案
Interview Blitz 71: What's the difference between GET and POST?
With strong network, China mobile to calculate excitation surging energy network construction
消费者认可度较高 地理标志农产品为啥“香”
夏季整治百日行动进行时:700余交通安全隐患被揪出
Mysql OCP 28题
Scrapy + Selenium 实现模拟登录,获取页面动态加载数据
C# Color颜色RGB对照表、颜色选择器
2022T电梯修理考试题及答案
一文了解,从RS485传感器到物联网关到云平台过程
随机推荐
有大佬用flink读取mysql binlog分表后再写入新表吗
创建C UDR时,指定的HANDLESNULLS的作用是什么?
go泛型使用方法
2022年起重机械指挥培训试题模拟考试平台操作
GBase 8c分布式数据库,数据如何分布最优?
Promise 1: Basic Questions
孙宇晨式“溢价逻辑”:不局限眼前,为全人类的“星辰大海”大胆下注
Mysql OCP 72题
训练双塔检索模型,可以不用query-doc样本了?明星机构联合发文
Leecode-SQL 1484. 按日期分组销售产品
VL53L0X V2 laser ranging sensor collects distance data serial output
超详细的Asp.net使用SSL双向认证,一篇就够了
在安装GBase 8c数据库的时候,报错显示“Host ips belong to different cluster”。这是为什么呢?有什么解决办法?
LeetCode_二分搜索_简单_367.有效的完全平方数
8 月数据库排行榜:Oracle 分数大跌,MySQL 上涨最多
Mysql OCP 26题
DOM0、DOM2、DOM3 事件
GoogLeNet系列解读「建议收藏」
浪潮—英伟达打造元宇宙新方案,虚拟人的故事将再破你的认知
APENFT FOUNDATION官宣2022艺术梦想基金主题征集