MATLAB中的结构体类型与与C语言中的结构体类型类似,一个结构体可以通过字段存储多个不同类型的数据,因此,结构体相当于一个数据容器,把多个相关联的不同类型的数据封装在一个结构体对象中。
创建结构体对象的方法有两种,可以直接通过赋值语句给结构体的字段赋值,也可以使用结构体创建函数struct,具体操作如下:
1.使用字段幅值创建结构体。在对结构体的字段进行赋值时,赋值表达式的变量名使用“结构体名称.字段名称”的形式书写,对同一结构体可以进行多个字段的赋值。例子:
Student.Name='Sam';
Student.Grade='6';
Student.Subject={'Chinese','Math','English'};
Student.Result={99,99,99};
Student
输出结果如下:
Student =
包含以下字段的 struct:
Name: 'Sam'
Grade: '6'
Subject: {'Chinese' 'Math' 'English'}
Result: {[99] [99] [99]}
2.使用struct函数创建结构体
struct函数句式为:
StrArry = struct('fieldl',varl,'field2',var2,...,'fieldn',varn)
例子:
Schedule(2)=struct('Day','Thursday','Time','15:00','Number',18)
输出结果为:
Schedule =
包含以下字段的 1×2 struct 数组:
Day
Time
Number
在命令行窗口输入:
Schedule(1) %结构体第一个元素没有赋值,因此所有字段均为空
输出结果为:
ans =
包含以下字段的 struct:
Day: []
Time: []
Number: []
在命令行窗口输入:
ScheduleArray=repmat(struct('Day','Thursday','Time','15:00','Number',18),1,2)
输出结果为:
ScheduleArray =
包含以下字段的 1×2 struct 数组:
Day
Time
Number
在命令行窗口输入:
ScheduleArray(1)
输出结果为:
ans =
包含以下字段的 struct:
Day: 'Thursday'
Time: '15:00'
Number: 18
在命令行窗口输入:
ScheduleArray(2)
输出结果为:
ans =
包含以下字段的 struct:
Day: 'Thursday'
Time: '15:00'
Number: 18
在命令行窗口输入:
ScheduleArray=struct('Day',{'Thursday','Friday'},'Time',{'15:00','9:00'},'Number',{18,6})
输出结果为:
ScheduleArray =
包含以下字段的 1×2 struct 数组:
Day
Time
Number
在命令行窗口输入:
ScheduleArray(1)
输出结果为:
ans =
包含以下字段的 struct:
Day: 'Thursday'
Time: '15:00'
Number: 18
在命令行窗口输入:
ScheduleArray(2)
输出结果为:
ans =
包含以下字段的 struct:
Day: 'Friday'
Time: '9:00'
Number: 6