【发布时间】:2015-11-03 16:30:18
【问题描述】:
我有一个单元格数组,我需要将其拆分为几个矩阵,以便获取数据子集的总和。这是我所拥有的样本:
A = {'M00.300', '1644.07';...
'M00.300', '9745.42'; ...
'M00.300', '2232.88'; ...
'M00.600', '13180.82'; ...
'M00.600', '2755.19'; ...
'M00.600', '15800.38'; ...
'M00.900', '18088.11'; ...
'M00.900', '1666.61'};
我想要“M00.300”、“M00.600”和“M00.900”中每一个的第二列的总和。例如,要对应于“M00.300”,我需要 1644.07 + 9745.42 + 2232.88。
我不想硬编码,因为每个数据集都不一样,所以我需要代码来处理不同大小的元胞数组。
我不确定执行此操作的最佳方法,我打算首先循环 A 并比较第一列中的字符串并在该循环中创建矩阵,但这听起来很混乱且效率不高。
有没有更简单的方法来做到这一点?
【问题讨论】:
-
所以你想按第一列(即M00.x00)对数据进行分组,然后选择每组的第N个元素并求和?
标签: arrays matlab sorting matrix split