源代码如下:
close all; clear all; clc; % 关闭所有图形窗口,清除工作空间所有变量,清空命令行
stu(1).name='LiMing'; % 直接创建结构体stu
stu(1).number='20120101';
stu(1).sex='f';
stu(1).age=20;
stu(2).name='WangHong';
stu(2).number='20120102';
stu(2).sex='m';
stu(2).age=19;
student=struct('name',{'LiMing','WangHong'},'number',{'20120101','20120102'},'sex',{'f','m' },'age',{20,19});
% 应用struct函数创建结构体student
stu;
stu(1);
stu(2);
student;
student(1);
student(2);
解释:
-
stu(1).name='LiMing';
至stu(2).age=19;
:这些行代码直接创建了两个学生的信息,并存储在名为stu
的结构体数组中。每个学生有一个name
、number
、sex
和age
字段。 -
student=struct('name',{'LiMing','WangHong'},'number',{'20120101','20120102'},'sex',{'f','m' },'age',{20,19});
:这行代码使用struct
函数创建了一个名为student
的结构体,它包含了两个学生的所有信息。每个字段都是一个元胞数组,包含两个学生的相应信息。
拓展:
- 显示结构体内容:可以添加代码来显示结构体
stu
和student
的内容。
disp('Structure stu:');
disp(stu);
disp('Structure student:');
disp(student);
- 访问结构体中的特定字段:可以演示如何访问结构体中的特定字段。
disp(['Student 1 name: ', stu(1).name]);
disp(['Student 2 age: ', num2str(student(2).age)]);
- 结构体的比较:可以演示如何比较两个结构体的内容。
isSame = isequal(stu(1), student(1));
disp(['Are stu(1) and student(1) the same? ', num2str(isSame)]);
- 结构体的字段操作:可以演示如何向结构体添加新字段或修改现有字段。
stu(1).grade = 90; % 向stu(1)添加新字段'grade'
student(1).grade = 85; % 向student(1)添加新字段'grade'
disp('Structure stu after adding a field:');
disp(stu);
disp('Structure student after adding a field:');
disp(student);