MATLAB struct用法
时间: 2025-05-26 19:21:01 浏览: 32
### MATLAB 中 `struct` 的使用方法
#### 1. 结构体定义
在 MATLAB 中,`struct` 是一种复合数据类型,用于存储不同类型的数据并可以通过字段名称访问这些数据。创建结构体的方式非常灵活,可以直接赋值或者通过函数生成。
```matlab
% 创建一个简单的结构体
person.name = 'John Doe'; % 字符串类型
person.age = 30; % 数字类型
person.isStudent = false; % 布尔类型
```
以上代码展示了如何手动创建一个名为 `person` 的结构体,并为其分配三个字段:`name`, `age`, 和 `isStudent`[^1]。
#### 2. 动态添加字段
除了初始化时指定字段外,还可以动态地向已存在的结构体中添加新字段:
```matlab
person.height = 175; % 添加新的字段 height
```
此操作不会影响原有字段的内容或顺序[^1]。
#### 3. 访问结构体成员
要访问某个特定字段的值,只需使用点运算符 (`.`),后面跟上对应的字段名即可。
```matlab
disp(person.name); % 输出 John Doe
disp(person.age); % 输出 30
```
如果尝试访问不存在的字段,则会抛出错误提示[^1]。
#### 4. 修改现有字段值
修改已有字段的方法同样简单明了——再次利用点运算符重新赋予目标字段一个新的数值。
```matlab
person.age = 31; % 更新 age 属性为 31
```
每次更改都会即时生效于整个程序范围内。
#### 5. 删除字段
当不再需要某些字段时,可采用 `rmfield()` 函数将其移除掉。
```matlab
person = rmfield(person,'height'); % 移除 person 的 height 字段
```
执行该命令后,“height” 将从 “person” 对象里彻底消失[^1]。
#### 6. 高级应用 - 多维结构体数组
MATLAB 支持构建多维度的结构体数组,这使得处理复杂数据集变得更加容易。
```matlab
people(1).name='Alice';
people(1).age=28;
people(2).name='Bob';
people(2).age=22;
for i=1:length(people)
fprintf('Name:%s Age:%d\n', people(i).name, people(i).age);
end
```
上述脚本先建立了一个包含两个人物基本信息的一维结构体数组;接着遍历打印每个人的名字与年龄信息。
---
### 示例完整代码
下面给出一段综合运用前面所学知识点的例子:
```matlab
function demoStruct()
% 初始化两个学生的信息
student1.name = 'Tom';
student1.id = 1001;
student1.grades.math = 90;
student1.grades.physics = 85;
student2.name = 'Jerry';
student2.id = 1002;
student2.grades.math = 88;
student2.grades.physics = 92;
students{1} = student1;
students{2} = student2;
displayStudents(students);
end
function displayStudents(studentList)
for idx = 1:numel(studentList)
s = studentList{idx};
fprintf('Student Name: %s ID: %d Math Grade: %d Physics Grade: %d \n',...
s.name,s.id,s.grades.math,s.grades.physics);
end
end
```
调用 `demoStruct()` 方法将会展示两位学生的具体成绩详情表单。
---
阅读全文
相关推荐











