6.1.5 结构体中的数据处理

处理结构体中数据的最简单方法是在 for 循环中完成(另请参阅 在结构体元素上循环)。类似的效果也可以通过 structfun 函数实现,该函数将用户定义的函数应用于结构体的每个字段。请参阅 structfun

或者,为了处理结构体中的数据,可以在处理之前将该结构体转换为其他类型的容器。

 
c = struct2cell (s)

从结构体对象中存储的对象创建一个新的元胞数组。

如果 f 是结构体中的字段数,则生成的元胞数组将具有与 [f size(s)] 对应的维度向量。例如:

s = struct ("name", {"Peter", "Hannah", "Robert"},
           "age", {23, 16, 3});
c = struct2cell (s)
   ⇒    c = {2x1x3 Cell Array}
c(1,1,:)(:)
   ⇒ 
      {
        [1,1] = Peter
        [2,1] = Hannah
        [3,1] = Robert
      }
c(2,1,:)(:)
   ⇒ 
      {
        [1,1] = 23
        [2,1] = 16
        [3,1] = 3
      }

另请参阅: cell2structnamedargs2cellfieldnames

 
c = namedargs2cell (s)

从标量结构体创建由字段名称/值对组成的元胞数组。

示例:

s.Name = "Peter";
s.Height = 185;
s.Age = 42;

c = namedargs2cell (s)
  ⇒   { "Name", "Peter", "Height", 185, "Age", 42 }

另请参阅: struct2cell

版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2