如何在Matlab中定义具有统一内部结构的自定义结构化类型?
在MATLAB中定义自定义结构类型并创建实例
MATLAB里有两种常用方式实现你要的需求,分别适配不同场景:
方法一:使用结构体(Struct)快速实现
这种方式无需提前定义类型模板,直接基于结构体模板复制创建实例,灵活高效:
% 先创建一个PERSON结构的模板 personTemplate = struct('FirstName', '', 'LastName', '', 'PhoneNumber', 0); % 创建MIKE实例并赋值 MIKE = personTemplate; MIKE.FirstName = 'Mike'; MIKE.LastName = 'Doe'; MIKE.PhoneNumber = 1234567890; % 创建JANE实例并赋值 JANE = personTemplate; JANE.FirstName = 'Jane'; JANE.LastName = 'Smith'; JANE.PhoneNumber = 9876543210;
如果不需要模板,也可以直接创建实例:
MIKE = struct('FirstName', 'Mike', 'LastName', 'Doe', 'PhoneNumber', 1234567890); JANE = struct('FirstName', 'Jane', 'LastName', 'Smith', 'PhoneNumber', 9876543210);
方法二:定义类(Class)实现强约束的自定义类型
如果需要严格的属性类型约束、封装方法等更接近传统面向对象的特性,可以定义一个类:
- 在MATLAB路径下创建名为
Person.m的文件,内容如下:
classdef Person properties FirstName char % 约束为文本类型 LastName char PhoneNumber {mustBeInteger} % 强制约束为整数类型 end methods % 构造函数,支持初始化赋值 function obj = Person(firstName, lastName, phoneNumber) if nargin > 0 obj.FirstName = firstName; obj.LastName = lastName; obj.PhoneNumber = phoneNumber; end end end end
- 在脚本或命令行中创建实例:
MIKE = Person('Mike', 'Doe', 1234567890); JANE = Person('Jane', 'Smith', 9876543210);
这种方式下,如果给PhoneNumber传入非整数,MATLAB会直接抛出错误,确保数据类型符合要求。
内容的提问来源于stack exchange,提问作者Xirdal
相关产品推荐
相关产品推荐

