有没有一种方法可以在matlab中对矩阵进行部分平均
我有一个从文件导入的矩阵(实际上是表):有没有一种方法可以在matlab中对矩阵进行部分平均,matlab,matrix,conditional,Matlab,Matrix,Conditional,我有一个从文件导入的矩阵(实际上是表): 1.0000 1.9736 4.0000 0.2016 9.0000 0.0584 10.0000 0.0495 5.0000 0.1845 2.0000 0.6873 1.0000 1.4177 2.0000 0.4699 5.0000 0.1555 10.0000 0.0435 13.0000 0.032
1.0000 1.9736
4.0000 0.2016
9.0000 0.0584
10.0000 0.0495
5.0000 0.1845
2.0000 0.6873
1.0000 1.4177
2.0000 0.4699
5.0000 0.1555
10.0000 0.0435
13.0000 0.0326
8.0000 0.0860
5.0000 0.1685
4.0000 0.1956
5.0000 0.1433
8.0000 0.0675
13.0000 0.0335
13.0000 0.0327
10.0000 0.0431
9.0000 0.0582
10.0000 0.0551
13.0000 0.0308
我想得到左栏中每个事件的平均值。即:
avg = [
1.0000 1.69565
2.0000 0.5786
4.0000 0.1978]
等等。我可以用wile或for group来做,但这不是matlab的方法。那我该怎么做呢
a=[randi(5,10,1) rand(10,1)];
a=
ans=
a=
ans=
如果矩阵名为
a
,请尝试
>> accumarray(grp2idx(a(:,1)),a(:,2),[],@mean)
ans =
1.6957
0.5786
0.1986
0.16295
0.07675
0.0583
0.0478
0.0324
请注意,
grp2idx
是统计工具箱的一部分。如果没有,可以使用unique
命令获得相同的结果。如果矩阵名为a
,请尝试
>> accumarray(grp2idx(a(:,1)),a(:,2),[],@mean)
ans =
1.6957
0.5786
0.1986
0.16295
0.07675
0.0583
0.0478
0.0324
请注意,
grp2idx
是统计工具箱的一部分。如果没有,可以使用unique
命令获得相同的结果。谢谢。这将在Comutation服务器上运行,我不知道这台机器上安装了什么。我无法使用你的解决方案。对不起,谢谢。这将在Comutation服务器上运行,我不知道这台机器上安装了什么。我无法使用你的解决方案。很抱歉
>> accumarray(grp2idx(a(:,1)),a(:,2),[],@mean)
ans =
1.6957
0.5786
0.1986
0.16295
0.07675
0.0583
0.0478
0.0324