Matlab中访问结构体数组中的数据

本文档展示了如何在MATLAB中访问结构体数组和标量结构体中的数据。通过示例解释了如何使用圆点表示法和索引来访问字段及部分数据,包括图像显示和元胞数组的访问。同时,介绍了非标量结构体数组的索引访问方式,强调了MATLAB不支持对多个结构体元素的字段同时进行部分索引的操作。
摘要由CSDN通过智能技术生成

目录

访问结构体数组中的数据

访问标量结构体中的数据

通过对结构体数组进行索引来访问数据


访问结构体数组中的数据

        该示例演示了如何访问结构体数组的内容。为了运行此示例中的代码,先将多个变量加载到名为S的结构体中。

访问标量结构体中的数据

        首先,将数据从 flujet.mat 加载到标量结构体 S 中。文件 flujet.mat 包含一幅仿真天体物理射流经历紊流的图像。

S = load('flujet.mat')


S = struct with fields:
          X: [400x300 double]
        map: [64x3 double]
    caption: [2x32 char]

        该文件中的变量(X、caption 和 map)现在为结构体中的字段。使用 structName.fieldName 形式的圆点表示法访问数据。例如,将字段 X 中的数值数据传递给 image 函数:

image(S.X)
colormap(S.map)

                           

        要访问字段的一部分内容,请添加适合字段中数据的大小和类型的索引。例如,将 X 的左中部分传递给 image 函数。

centerLeft = S.X(150:250,1:50);
image(centerLeft)

  如图所示:                                  

        如果一个字段包含元胞数组,请使用花括号访问数据,例如 S.cellField{1:50,1:80}。

通过对结构体数组进行索引来访问数据

        通过将文件 cape.mat 中的数据加载到数组 S 的第二个元素中来创建一个非标量数组。文件 cape.mat 包含马萨诸塞州鳕鱼角的图像。

        一个结构体数组的每个元素都必须具有相同的字段。flujet.mat 和 cape.mat 都包含变量 X、map 和 caption。S 是 1×2 数组。

S(2) = load('cape.mat')


S=2×3 struct
    X
    map
    caption

        对于非标量结构体,访问字段的语法为 structName(indices).fieldName。显示鳕鱼角的图像,将 2 指定为 S 的索引。

image(S(2).X)
colormap(S(2).map)

        如图所示:                                           

        添加索引以选择和显示 S(2).X 的一小部分。

capeSection = S(2).X(200:300,150:250);
image(capeSection)

如图所示:                                           

注意:仅当引用结构体数组的单个元素时,才能为字段的部分内容建立索引。MATLAB® 不支持诸如 S(1:2).X(1:50,1:80) 的语句,后者尝试为结构体的多个元素的字段建立索引。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值