当前位置:网站首页>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个元素置为空矩阵,而不是删除它。
边栏推荐
猜你喜欢

全新的Uber App设计

聊天app开发——防炸麦以及节省成本的内容鉴定方法

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

2022年山东省安全员C证复习题模拟考试平台操作

深入解析分布式文件系统的一致性的实现

阿里本地生活全域日志平台 Xlog 的思考与实践

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

QT with OpenGL(HDR)

APENFT FOUNDATION官宣2022艺术梦想基金主题征集

投稿有礼,双社区签约博主名额等你赢!
随机推荐
出色的移动端用户验证
ARIMA实现(亲测可用)
Promise 2: Key Questions
Boolean 与numeric 无法互转
媒体查询代码
SQL试题
历史拉链数据处理有人做过吗
面试突击71:GET 和 POST 有什么区别?
聊天app开发——防炸麦以及节省成本的内容鉴定方法
Mysql OCP 75 questions
按位取反怎么运算_按位取反运算
Enter the SQL Client to create the table, in another node into the SQL Client queries
Apple Silicon配置二进制环境(二)
The simplest base64 image stream in js realizes automatic download
Promise 二:关键问题
阿里本地生活全域日志平台 Xlog 的思考与实践
GBase 8c分布式数据库,数据如何分布最优?
Unity笔记之简陋的第一人称漫游
自定义实现乘风破浪的小船
投稿有礼,双社区签约博主名额等你赢!