【发布时间】:2014-02-03 16:56:49
【问题描述】:
我对 Matlab 很陌生,但我对其他编程语言有一些经验。我在 Matlab 中有一个从 MySQL 导入的非常大的表。它以元胞数组的形式给出,如下所示:
date key sales weight name
12/11 101 1200 20 blue
12/11 178 1200 70 purple
13/11 209 1300 15 purple
12/11 101 1200 10 blue
14/11 678 1200 10 yellow
12/11 340 1500 30 green
17/11 178 1900 50 purple
我希望输出是这样的:
key sales weight name
101 2400 30 blue
178 3100 120 purple
209 1300 15 purple
678 1200 10 yellow
340 1500 30 green
所以我想在“键”列中合并具有相同数字的行。同时,我想将“销售额”和“重量”列相加,并保留“名称”列(每个“键”具有相同的“名称”,但每个“名称”可以有多个“键”)
我知道这可以通过 for 循环实现,但由于我必须以类似但不同的方式操作大量表,因此这是计算密集型的。
我读过类似的问题,这可以使用 accumarray 来解决,但是这可以使用 accumarray 来完成吗?那会是什么样子?
【问题讨论】:
-
您能否举例说明您的元胞数组是如何存储的?它有标题吗?整个
key列是一个数组,sales是一个数组等吗?
标签: mysql arrays matlab accumarray