MATLAB中的结构型变量使用技巧

结构型变量的定义

结构型变量的相关函数


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

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

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

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


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

运行结果:
MATLAB 结构型变量_赋值
上面代码表示定义了结构型变量,结构型变量有3个属性:属性a1,属性a2,属性a3。


第二种函数​​struct​​定义

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

结构型变量名 = struct(元素名1,元素值1,元素名2,元素值2,......)1.


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

运行结果:
MATLAB 结构型变量_赋值_02


fieldnames函数的使用
A = [1, 2, 3, 4, 5];B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')fieldnames(B)  % 调用处结构型变量B的所有元素名1.2.3.4.

运行结果:
MATLAB 结构型变量_属性值_03


getfield函数的使用
A = [1, 2, 3, 4, 5];B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = getfield(B, 'a1')   % getfield函数把 B.a1 的值赋给 C1.2.3.4.

运行结果:
MATLAB 结构型变量_属性值_04


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中 添加新的属性1.2.3.4.5.6.

运行结果:
MATLAB 结构型变量_属性值_05


rmfield函数的使用
A = [1, 2, 3, 4, 5];B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = rmfield(B, 'a1')   % 删除结构型变量的属性 a1 赋值给结构型变量 C,需要将结果赋予原变量 或 新的变量,才能更新原变量或新的变量拥有更新后的结果1.2.3.4.

运行结果:
MATLAB 结构型变量_赋值_06


isfield函数的使用
A = [1, 2, 3, 4, 5];B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = isfield(B, 'a1')   % 判断是否是结构型变量的属性C = isfield(B, 'aa')   % 判断是否是结构型变量的属性1.2.3.4.5.

运行结果:
MATLAB 结构型变量_结构型_07


isstruct函数的使用
A = [1, 2, 3, 4, 5];B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = isstruct(A)  % 判断是否为结构型变量C = isstruct(B)  % 判断是否为结构型变量1.2.3.4.5.

运行结果:
MATLAB 结构型变量_属性值_08

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空