如何找出特定列中具有重复元素的行并添加其他列的所有相应元素?

时间:2013-05-24 04:38:08

标签: matlab simulation rows repeat

我有一个巨大的模拟数据,需要在MATLAB中进行后期处理。 假设我的矩阵是A,其列被命名为变量IDXYZs1s2和{{ 1}}。实际上我的要求是我想找出重复s3的行(这里我的意思是我有一个x坐标值的多个点)并添加列X和{的所有相应元素{1}},并将每个除以否。 s1的出现次数。最后,我希望s2Xs1对其出现频率进行平均。

这可能是一个非常微不足道的问题,但是,作为一个初学者,我搜索了&在这个网站上做了很多尝试,但反复无常进展。我知道我们可以通过使用模式或唯一等命令找出重复的行及其频率,但是我无法添加相应的列元素并进行平均。

最后,当我想描述s2s3时,X的每个值应该只有一个s1值。 (即s1需要对所有重复x1

进行平均

我们是否有任何直接的matlab命令,或者我们需要使用一些循环?

请帮帮我。

1 个答案:

答案 0 :(得分:3)

matlab中有一个名为grpstats的函数可以解决您的问题。 它为矩阵或数据集数组中的数据计算分组汇总统计信息。

示例:

data = [1,2,3,4];
group = [1,1,1,3];
[name,mean] =  grpstats(data, group,{'gname','mean'})

会输出:

name = 

'1'
'3'


mean =

 2
 4

您可以在Matlab中输入help grpstats以获取更多信息。