我怎样才能聚合积累一个细胞阵列?

Yi.*_*Yi. 5 matlab

说我有:

A = {'a.java' 1;'a.java' 2; 'b.java' 1; 'b.java' 0; 'a.java' 4; 'c.java' 6};
Run Code Online (Sandbox Code Playgroud)

我想根据第一列相似性累积第二列数.

我想得到:

B = {'a.java' 1+2+4; 'b.java' 1+0; 'c.java' 6}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

非常感谢,

gno*_*ice 6

您可以使用UNIQUEACCUMARRAY函数在没有for循环的情况下轻松完成此操作:

>> [uniqueValues,~,index] = unique(A(:,1));
>> B = [uniqueValues num2cell(accumarray(index,[A{:,2}]))]

B = 

    'a.java'    [7]
    'b.java'    [1]
    'c.java'    [6]
Run Code Online (Sandbox Code Playgroud)