处理结构体中数据的最简单方法是在 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
}
另请参阅: cell2struct、namedargs2cell、fieldnames。
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