MATLAB:如何将具有相同大小字段值的结构数组组合成一个结构
MATLAB: How do I combine a structure array with same size field values into one structure
我有一个结构数组,其中每个同名字段的大小都相同。我想将数组中的每个字段合并为一个字段。例如:
A(1).x = [1 2 3];
A(1).y = [4 5 6];
A(2).x = [7 8 9];
A(2).y = [10 11 12];
我希望新结构是
B.x = [1 2 3;
7 8 9];
B.y = [4 5 6;
10 11 12];
如果这样更容易的话,这些也可以是结构单元。
A.x
生成以逗号分隔的值列表。您可以在函数调用中使用这个以逗号分隔的列表,在这种情况下,每个值都被视为一个单独的参数。这非常有用,因为您可以将其传递到对 cat
的调用中以连接值:
B.x = cat(1, A.x);
您必须对每个字段执行相同的操作。要自动执行此操作,您可以遍历 fieldnames(A)
:
for name = fieldnames(A).'
B.(name{1}) = cat(1, A.(name{1}));
end
我有一个结构数组,其中每个同名字段的大小都相同。我想将数组中的每个字段合并为一个字段。例如:
A(1).x = [1 2 3];
A(1).y = [4 5 6];
A(2).x = [7 8 9];
A(2).y = [10 11 12];
我希望新结构是
B.x = [1 2 3;
7 8 9];
B.y = [4 5 6;
10 11 12];
如果这样更容易的话,这些也可以是结构单元。
A.x
生成以逗号分隔的值列表。您可以在函数调用中使用这个以逗号分隔的列表,在这种情况下,每个值都被视为一个单独的参数。这非常有用,因为您可以将其传递到对 cat
的调用中以连接值:
B.x = cat(1, A.x);
您必须对每个字段执行相同的操作。要自动执行此操作,您可以遍历 fieldnames(A)
:
for name = fieldnames(A).'
B.(name{1}) = cat(1, A.(name{1}));
end