我有两组载体如下:
a1 = [0,1,2,3,4]; % the unique elements
b1=[12,35,60,20,7]; % the number of repitition of each element
a2 = [0,1,6]; % the unique elements
b2=[15,40,2]; % the number of repitition of each element
我希望将它们合并以获得此结果:
a=[0,1,2,3,4,6];
b=[27,75,60,20,7,2];
Matlab中是否有内置函数可以做到?
答案 0 :(得分:3)
这可以按如下方式完成:
unique
的第一个输出提供了所需的a
。第三个输出给出正整数标签u
,用于标识组。u
作为第一个输入来调用accumarray
。代码:
[a, ~, u] = unique([a1(:); a2(:)]);
a = a(:).';
b = accumarray(u, [b1(:); b2(:)]).';