matlab 结构(struct)数组,matlab 结构(struct)数组

4. 3.2 结构数组的操作

MATLAB中专门用于对结构数组的操作的函数并不多,通过 help datatypes获取数据类型列表,可以看到其中的结构数据类型的有关的函数,主要如表4.3.1所示。

表4.3.1 结构数组的操作函数

函数名   功能描述   函数名   功能描述

deal   把输入处理成输出   fieldnames   获取结构的字段名

getfield   获取结构中指定字段的值   rmfield   删除结构的字段(不是字段内容)

setfield   设置结构数组中指定的字段的值   struct   创建结构数组

struct2cell   结构数组转化成元胞数组   isfield   判断是否存在该字段

isstruct   判断某变量是否是结构类型

下面举一些具体的例子说明如果对结构数组加以操作。

【例4.3.2-1】 本例目的:一,演示函数fieldnames , getfield , setfield的使用方法;二,让读者感受到结构数组对应用工具包的影响;三,演示struct函数把“对象”转换为结构的应用。本例为获得一个演练的结构,借助Toolbox control 工具包中的tf函数,先产生一个用传递函数描写的LTI线性时不变2输入2输出系统 。

(1)产生2输入2输出系统的传递函数阵“对象”

Stf=tf({3,2;[4 1],1},{[1 3 2],[1 1 1];[1 2 2 1],[1 0]})

Transfer function from input 1 to output...

3

#1: -------------

s^2 + 3 s + 2

4 s + 1

#2: ---------------------

s^3 + 2 s^2 + 2 s + 1

Transfer function from input 2 to output...

2

#1: -----------

s^2 + s + 1

1

#2: -

s

(2)为本例演示,把上述的LTI对象Stf转换为结构

SSTF=struct(Stf)       % 把对象转换成结构,并显示结构的组成

SSTF =

num: {2x2 cell}

den: {2x2 cell}

Variable: 's'

lti: [1x1 lti]

(3)获得结构数组SSTF的域名

FN=fieldnames(SSTF) % 获得域名元胞数组FN

class(FN)     % 检查FN的类别

FN =

'num'

'den'

'Variable'

'lti'

ans =

cell

(4)获取SSTF.den(2,1)域的内容

FC=getfield(SSTF,'den',{2,1})     % 相当于FC=SSFT.den(2,1)

FC{1}                   % 与celldisp(FC)的作用大致相当

poly2str(FC{1},'s'),         % 为了把多项式显示成习惯

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值