struct matlab
时间: 2025-02-02 19:32:59 浏览: 44
### MATLAB 中 `struct` 函数的使用方法
#### 创建结构体
在 MATLAB 中,可以通过多种方式创建结构体。最常见的方式是直接定义带有字段名和对应值的结构体。
```matlab
% 定义一个简单的结构体
person.name = 'John Doe';
person.age = 30;
person.city = 'New York';
```
另一种创建结构体的方法是从对象转换而来[^2]:
```matlab
classdef Person
properties
name
age
city
end
methods
function obj = Person(name, age, city)
obj.name = name;
obj.age = age;
obj.city = city;
end
end
end
pObj = Person('Jane Smith', 28, 'Los Angeles');
sPerson = struct(pObj);
disp(sPerson);
```
此代码展示了如何先定义一个类 `Person` 并实例化该类的对象 `pObj` ,再利用 `struct()` 将此类对象转化为结构体 `sPerson`.
#### 访问结构体成员
访问结构体内的元素非常直观,只需采用点号`.`操作符加上相应的字段名称即可获取对应的值:
```matlab
ageOfPerson = person.age; % 获取年龄
disp(['The person is ', num2str(ageOfPerson), ' years old.']);
```
对于多维或嵌套结构体,同样适用这种方式逐层深入访问各个子级字段.
#### 修改结构体内容
修改现有结构体的内容也很简单,只需要重新赋值给特定路径下的目标位置就可以完成更新动作:
```matlab
person.age = 31; % 更新个人资料里的岁数信息
disp(person); % 显示整个结构体的新状态
```
#### 动态增加新字段
除了初始化时设定好的固定几个属性外,在程序运行期间还可以随时向已存在的结构体内追加新的键值对组合作为额外的信息补充:
```matlab
person.email = '[email protected]'; % 添加电子邮件地址这一项记录
disp(person); % 展示含有新增条目的完整结构体详情
```
#### 结构体数组
当处理多个相似类型的实体时,可以考虑构建结构体数组来统一管理这些个体之间的关系以及它们各自携带的数据集:
```matlab
people(1).name = 'Alice';
people(1).age = 25;
people(2).name = 'Bob';
people(2).age = 27;
for i=1:length(people)
disp([people(i).name,' is ',num2str(people(i).age),' years old.'])
end
```
这段脚本说明了怎样建立并遍历由若干个具有相同模式构成的小型容器组成的大型集合——即所谓的“结构体数组”。
阅读全文
相关推荐


















