0
点赞
收藏
分享

微信扫一扫

MATLAB 结构型变量

结构型变量的定义

结构型变量的相关函数

函数名

说明

struct

创建或转换结构型变量

fieldnames

得到结构型变量的属性名

getfield

得到结构型变量的属性值

setfield

设定结构型变量的属性值

rmfield

删除结构型变量中的属性

isfield

判断是否为结构型变量的属性

isstruct

判断变量是否为结构型变量

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

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

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

第一种直接赋值定义

>> Test.a1 = 'avcdef';
>> Test.a2 = 6;
>> Test.ae = [1, 2, 3, 4, 5];
>> Test

运行结果:
MATLAB 结构型变量_结构型
上面代码表示定义了结构型变量,结构型变量有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

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

fieldnames函数的使用

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

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

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

getfield函数的使用

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

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

运行结果:
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中 添加新的属性

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

rmfield函数的使用

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

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

运行结果:
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')   % 判断是否是结构型变量的属性

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

isstruct函数的使用

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

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

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

举报

相关推荐

0 条评论