QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 768|回复: 0
打印 上一主题 下一主题

matlab 结构数组 1

[复制链接]
字体大小: 正常 放大

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2015-8-9 16:32 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    matlab 结构数组(struct)
    要在MALTAB中实现比较复杂的编程,就不能不用struct类型。而且在MATLAB中实现structC中更为方便。
    4.3.1 结构数组的创建
    MATLAB提供了两种定义结构的方式:直接应用和使用struct函数。
    • 使用直接引用方式定义结构

    与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个复数变量x
    x.real = 0;     % 创建字段名为real,并为该字段赋值为0
    x.imag = 0;     % x创建一个新的字段imag,并为该字段赋值为0
    x =
    real: 0
    imag: 0
    然后可以将其动态扩充为数组:
    x(2).real = 0; %x扩充为1×2的结构数组
    x(2).imag = 0;
    在任何需要的时候,也可以为数组动态扩充字段,如增加字段scale
    x(1).scale = 0;
    这样,所有x都增加了一个scale字段,而x(1)之外的其他变量的scale字段为空:
    x(1) % 查看结构数组的第一个元素的各个字段的内容
    ans =
    real: 0
    imag: 0
    scale: 0
    x(2) % 查看结构数组的第二个元素的各个字段的内容,注意没有赋值的字段为空
    ans =
    real: 0
    imag: 0
    scale: []
    应该注意的是,xrealimagscale字段不一定是单个数据元素,它们可以是任意数据类型,可以是向量、数组、矩阵甚至是其他结构变量或元胞数组,而且不同字段之间其数据类型不需要相同。例如:
    clear x; x.real= [1 2 3 4 5]; x.imag = ones(10,10);
    数组中不同元素的同一字段的数据类型也不要求一样:
    x(2).real ='123';
    x(2).imag =rand(5,1);
    甚至还可以通过引用数组字段来定义结构数据类型的某字段:
    x(3).real =x(1); x(3).imag = 3; x(3)
    ans =
    real: [1x1struct]
    imag: 3

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    数学中国版主团队!
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-21 13:40 , Processed in 0.638927 second(s), 54 queries .

    回顶部