0

我有一个嵌套结构,其中包含值并定义为:

mystruct.level1.a = 1;
mystruct.level1.b = 2;
mystruct.level2.a = 8;
mystruct.level2.b = 9;

我想对level1和level2中的元素进行操作。我想要做的是访问 level1 和 level2 中的值,将它们放在一个向量中,而不引用嵌套的字段名称。

例如,我想做类似的事情:

level1_vector = [mystruct.level1]

我想输出:

level1_vector = [1 2]

我怎样才能做到这一点?

4

2 回答 2

1

使用以下两个函数的组合:

cell2mat(struct2cell(mystruct.level1))

于 2013-05-08T20:00:47.643 回答
0

有一个structfun要做的。它将返回另一个具有相同名称的结构。所以对于你的情况:

con_struct = structfun (@(x) [x.a x.b], mystruct, "UniformOutput", false);

现在,con_struct将具有与 相同的字段mystruct,但不是结构,它们中的每一个都是具有您想要的值的数组。您可以再次将每个数组提供给您想要的任何功能

structfun (@foo, con_struct)
于 2013-05-08T21:06:05.770 回答