matlab - 我怎样才能聚合一个元胞数组?

标签 matlab

说我有:

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/

相关文章:

matlab - 在 MATLAB 中处理 ROI

matlab - Shading 命令在 MATLAB 和 Octave 中产生不同的结果

java 。内存不足

c++ - cv::equalizeHist 和 matlab histeq() 之间有什么区别

matlab - 自动标记子图

Matlab将图形保存为特定大小?

python - Python 中 scipy.integrate 的 odeint 给出了错误的结果?

matlab - 如何在 Matlab 中向量化双依赖循环?

matlab - 在没有 'for' 循环的情况下使匹配和追加代码更高效

matlab - 计算单元格数组matlab中的单词