函数名 | 说明 |
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.
运行结果:
上面代码表示定义了结构型变量,结构型变量有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.
运行结果:
A = [1, 2, 3, 4, 5];B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')fieldnames(B) % 调用处结构型变量B的所有元素名1.2.3.4.
运行结果:
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.
运行结果:
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.
运行结果:
A = [1, 2, 3, 4, 5];B = struct('a1', A, 'b2', 2, 'C3', 'abcdef')C = rmfield(B, 'a1') % 删除结构型变量的属性 a1 赋值给结构型变量 C,需要将结果赋予原变量 或 新的变量,才能更新原变量或新的变量拥有更新后的结果1.2.3.4.
运行结果:
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.
运行结果:
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.
运行结果:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删