MATLAB学习日志DAY22

动态字段名称

访问结构体中的数据的最常用方法是指定要引用的字段的名称。

访问结构体数据的另一种方法是使用动态字段名称。这些名称将字段表示为变量表达式,MATLAB 会在运行时计算这些表达式。此处显示的 点-括号 语法将 expression 作为动态字段名称:

structName.(expression)

使用标准 MATLAB 索引语法创建此字段的索引。例如,要在字段名称中计算 expression,并在行 7 中的 1 至 25 列内获取该字段的值,使用

 structName.(expression)(7,1:25)

动态字段名称示例

下面显示的 avgscore 函数可用于计算考试的平均分数,并使用动态字段名称检索 testscores 结构体中的信息:

function avg = avgscore(testscores, student, first, last) 
for k = first:last 
    scores(k) = testscores.(student).week(k);
end 
avg = sum(scores)/(last - first + 1);

运行此函数,并对动态字段 student 使用不同值。

首先,对包含 25 周内的分数的结构体进行初始化:

testscores.Ann_Lane.week(1:25) = ... 
    [95 89 76 82 79 92 94 92 89 81 75 93 ... 
    85 84 83 86 85 90 82 82 84 79 96 88 98]; 

testscores.William_King.week(1:25) = ... 
    [87 80 91 84 99 87 93 87 97 87 82 89 ... 
    86 82 90 98 75 79 92 84 90 93 84 78 81]; 

现在,运行 avgscore,并在运行时使用动态字段名称为 testscores 结构体提供学生姓名字段:

avgscore(testscores, 'Ann_Lane', 7, 22) 
    ans = 85.2500 

avgscore(testscores, 'William_King', 7, 22) 
    ans = 87.7500

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值