当前位置:网站首页>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个元素置为空矩阵,而不是删除它。
边栏推荐
猜你喜欢
VL53L0X V2 laser ranging sensor collects distance data serial output
pytorch installation error
mysql 运行的时候 报错
出色的移动端用户验证
Scrapy + Selenium implements simulated login and obtains dynamic page loading data
2022年山东省安全员C证复习题模拟考试平台操作
罕见的数学天才,靠“假结婚”才得到追求事业的机会
创建C UDR时,指定的HANDLESNULLS的作用是什么?
QT with OpenGL(HDR)
月薪没到35K的程序员必须要背的面试八股,我先啃为敬!
随机推荐
DOM对象能干什么?
json格式的字符串是什么类型的_输入字符串的格式要求
以网强算,中国移动算网建设激发澎湃能量
面试突击71:GET 和 POST 有什么区别?
pytorch installation error
synchronized
跨域问题的分析
DOM0, DOM2, DOM3 events
js中最简单base64图片流实现自动下载
关于GBase 8c数据库的问题,如何解决?
面试突击71:GET 和 POST 有什么区别?
HCIP第十七天笔记
CRT command keys
文旅部:进一步加强旅游景区暑期安全管理工作
Apache Doris系列之:数据模型
分布式事务七种解决方案
mysql 运行的时候 报错
2022年起重机械指挥培训试题模拟考试平台操作
SQL试题
按位取反怎么运算_按位取反运算