MATLAB 结构型变量

结构型变量的定义

结构型变量的相关函数
函数名说明
struct创建或转换结构型变量
fieldnames得到结构型变量的属性名
getfield得到结构型变量的属性值
setfield设定结构型变量的属性值
rmfield删除结构型变量中的属性
isfield判断是否为结构型变量的属性
isstruct判断变量是否为结构型变量

结构型变量的定义有两种方法

  • 直接赋值定义
  • 函数struct定义

注意:直接赋值时,需要指出结构中的属性名,并且用指针操作符“.”来连接结构型变量名与属性名。对属性直接赋值,会自动生成结构型变量,并使结构型变量包含所定义的属性。

第一种直接赋值定义
>> Test.a1 = 'avcdef';
>> Test.a2 = 6;
>> Test.ae = [1, 2, 3, 4, 5];
>> Test

运行结果:
在这里插入图片描述
上面代码表示定义了结构型变量,结构型变量有3个属性:属性a1,属性a2,属性a3。

第二种函数struct定义

使用函数struct来定义结构型变量,格式如下:

结构型变量名 = struct(元素名1,元素值1,元素名2,元素值2,......)
>> A = [1, 2, 3, 4, 5];
>> B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')
>> B

运行结果:
在这里插入图片描述

fieldnames函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')

fieldnames(B)  % 调用处结构型变量B的所有元素名

运行结果:
在这里插入图片描述

getfield函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')

C = getfield(B, 'a1')   % getfield函数把 B.a1 的值赋给 C 

运行结果:
在这里插入图片描述

setfield函数的使用

setfield函数对结构型变量的属性值更新后的结果赋给新的结构型变量或在原有的结构型变量基础上添加新的属性。
注意:必须将函数结果赋予该结构型变量,否则将不会实现更改属性值的作用。

A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')

C = setfield(B, 'a1', [6, 7, 8, 9])   % setfield函数对 B.a1 的值 进行更新,产生新的结构型变量赋给 
C = setfield(C, 'b2', 10)   % setfield函数把 C.b2 进行更新,产生新的结构型变量赋给 
C = setfield(C, 'b3', 100)   % setfield函数 在结构型变量 C中 添加新的属性 

运行结果:
在这里插入图片描述

rmfield函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')

C = rmfield(B, 'a1')   % 删除结构型变量的属性 a1 赋值给结构型变量 C,需要将结果赋予原变量 或 新的变量,才能更新原变量或新的变量拥有更新后的结果

运行结果:
在这里插入图片描述

isfield函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')

C = isfield(B, 'a1')   % 判断是否是结构型变量的属性
C = isfield(B, 'aa')   % 判断是否是结构型变量的属性

运行结果:
在这里插入图片描述

isstruct函数的使用
A = [1, 2, 3, 4, 5];
B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')

C = isstruct(A)  % 判断是否为结构型变量
C = isstruct(B)  % 判断是否为结构型变量

运行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值