You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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)实现强约束的自定义类型

如果需要严格的属性类型约束、封装方法等更接近传统面向对象的特性,可以定义一个类:

  1. 在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
  1. 在脚本或命令行中创建实例:
MIKE = Person('Mike', 'Doe', 1234567890);
JANE = Person('Jane', 'Smith', 9876543210);

这种方式下,如果给PhoneNumber传入非整数,MATLAB会直接抛出错误,确保数据类型符合要求。

内容的提问来源于stack exchange,提问作者Xirdal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 18:32:50