说我有:
A = {'a.java' 1;'a.java' 2; 'b.java' 1; 'b.java' 0; 'a.java' 4; 'c.java' 6};
我想根据第一列的相似度来累加第二列的数字。
我想得到:
B = {'a.java' 1+2+4; 'b.java' 1+0; 'c.java' 6}
我怎样才能做到这一点?
非常感谢,
最佳答案
您可以使用函数 UNIQUE 在没有 for 循环的情况下轻松完成此操作和 ACCUMARRAY :
>> [uniqueValues,~,index] = unique(A(:,1));
>> B = [uniqueValues num2cell(accumarray(index,[A{:,2}]))]
B =
'a.java' [7]
'b.java' [1]
'c.java' [6]
关于matlab - 我怎样才能聚合一个元胞数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5802027/