matlab结构体数组定义方法

matlab学习-结构体数组定义

  • 方法一:直接定义
  • 方法二:使用struct命令

当需要定义的参数变量较多时,往往需要用到结构体,Matlab中结构体数组与python中字典概念差不多,使用方法也类似,下面详细介绍其定义方法。

方法一:直接定义

直接定义,如定义

// An highlighted block
students.name = 'John';
students.sex = 'Boy';
students

输出结果为 包含以下字段的 struct:

name: 'John'
 sex: 'Boy'

name对应字典中的key,'John’对应于字典中的value,如若增加结构体维数,可直接定义来增加结构体中变量
students(2).name = 'Amy';
students(2).sex = 'Girl';
students
此时输出结果为包含以下字段的 1×2 struct 数组:

name
sex

若想增加结构体中内容,可直接定义

students(1).province='Beijing';

此时结构体为包含以下字段的 1×2 struct 数组:

name
sex
province

打开结构体变量可看到其具体的值为
‘John’ ‘Boy’ ‘Beijing’
‘Amy’ ‘Girl’ []
对未定义的字段用[]表示,当然结构体中可包含字符串,向量,矩阵,元组,结构体等。
结构体也可像矩阵一样可自定义维数,如定义一个结构体

students(2,1).name = 'LiMing';

结构体变为2×2 struct 数组.

方法二:使用struct命令

使用struct来定义,struct的定义为一个key,一个value,如struct(‘key1’,val1,‘key2’,val2,…),实例如下:

students = struct('name','John','sex','Boy','province','Beijing');

结果与方法一中一致包含以下字段的 struct:

    name: 'John'
     sex: 'Boy'
province: 'Beijing'

当需要定义多维结构体时,value用元组来表示即可,如

students = struct('name',{'John','Amy'},'sex',{'Boy','Girl'},'province',{[],'Beijing'});

注意当有未定义的val时,需用[]表示,否则会输出同一变量,此时输出为包含以下字段的 1×2 struct 数组:

name
sex
province

如需改变结构体的维数,只需改变元组的维数即可,如

students = struct('name',{'John';'Amy'},'sex',{'Boy';'Girl'},'province',{[];'Beijing'});

输出则为包含以下字段的 2×1 struct 数组:

name
sex
province

你可能感兴趣的:(matlab学习)