我正在尝试合并两个具有相同字段的结构。我尝试了几种方法,比如this和 this 。但结果要么是横向的,要么根本不起作用。
我的两个(简化的)结构是
a(1).name = 'x';
a(1).data = 1;
a(2).name = 'y';
a(2).data = 2;
和
b(1).name = 'x';
b(1).data = 3;
b(2).name = 'y';
b(2).data = 4;
所需的输出与将产生的结果相同:
c(1).name = 'x';
c(1).data = 1;
c(2).name = 'y';
c(2).data = 2;
c(3).name = 'x';
c(3).data = 3;
c(4).name = 'y';
c(4).data = 4;
有什么简单的方法可以做到这一点?在我的真实结构中,有两个以上的字段具有一千多个值。
最佳答案
下面的代码就是这样做的。
%-------------------------------------------------------
a(1).name = 'x';
a(1).data = 1;
a(2).name = 'y';
a(2).data = 2;
b(1).name = 'x';
b(1).data = 3;
b(2).name = 'y';
b(2).data = 4;
c = struct('name',{a(:).name,b(:).name},'data',{a(:).data,b(:).data});
%-------------------------------------------------------
>> c(1)
ans =
name: 'x'
data: 1
>> c(2)
ans =
name: 'y'
data: 2
>> c(3)
ans =
name: 'x'
data: 3
>> c(4)
ans =
name: 'y'
data: 4
关于arrays - 如何在 MATLAB 中合并结构体/结构体数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35035716/