当前位置:网站首页>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个元素置为空矩阵,而不是删除它。
边栏推荐
猜你喜欢
随机推荐
_GLIBCXX_USE_CXX11_ABI 宏的作用
C语言二维数组用一维数组进行调用
从餐桌到太空,孙宇晨的“星辰大海”
CRT command keys
免费的mysql数据库管理工具_易语言快速导入MySQL数据库
以网强算,中国移动算网建设激发澎湃能量
Mysql OCP 73 questions
Boolean 与numeric 无法互转
Mysql OCP 74题
阿里本地生活全域日志平台 Xlog 的思考与实践
How to deal with this time of MySQL binlog??
投稿有礼,双社区签约博主名额等你赢!
Enter the SQL Client to create the table, in another node into the SQL Client queries
QSplitter(分离部件)
Promise 二:关键问题
go泛型使用方法
超详细的Asp.net使用SSL双向认证,一篇就够了
关于OPENSSL的问题
sql server 批量更新数据多张表 更高效的方法
创建C UDR时,指定的HANDLESNULLS的作用是什么?