EDA365电子论坛网

标题: 请问如何实现二维数组第一列相同数字的行求平均 [打印本页]

作者: purpose_857    时间: 2023-2-24 15:54
标题: 请问如何实现二维数组第一列相同数字的行求平均
比如下面a是2x7的原始数组,需要最后变成b,就是把第一列相同数字的行求平均! S3 x; I2 g9 R7 }6 c/ q4 S0 Q6 b2 }
a=[1 2;1 4;2 3;2 5;3 4;3 7;3 1];
1 r& r4 t0 I% @; w2 d2 Z2 c* I7 n" a# k' N4 g# }+ d
% b=[1 3;2 4;3 4];
# @. i7 O: {# i) o# P' Q/ {0 B$ W) }" w! @, ]% I
谢谢各位大佬!- Q: J0 G2 c5 Z

作者: I_believe    时间: 2023-2-24 17:04
6 X: D* t: q( _1 g8 x* ]
a=[1 2;1 4;2 3;2 5;3 4;3 7;3 1];
2 T" r" C4 V9 g: Y9 n%% 方法1
: h+ b, n1 T/ cindex =unique(a(:,1));3 w" P2 @  E6 ^5 ~; D" n1 T/ Y' u
JG=[];
' t" F( P3 S+ jfor i =1:length(index)
$ @) \/ b. o. L+ }* V; ^$ J7 h" [    JG=[JG;[index(i),mean(a(a(:,1)==index(i),2))]];9 D6 |  ]$ y# H
end
2 n% r: K2 q% u' y9 R* ~& v%% 方法2利用表的groupsummary 组汇总计算& `+ U( w8 i/ s; H+ ~, f
T=array2table(a, 'VariableNames',{'a1','a2'});8 \8 C) Q" p4 a; m0 `% g
G = groupsummary(T,'a1','mean' );2 Z. I4 x% }2 F4 c  `2 B: Z) u6 c
temp=table2array(G);
" C6 X' a( V. @: A9 Oout=temp(:,[1,3]);
作者: aid4her    时间: 2023-2-24 17:19
第一列中数字1对应的行数是1和2,均值是1.5;数字2对应的行数是3和4,均值是3.5;数字3对应的行数是5、6、7,均值是6,所以你的b是怎么来的呢?请更具体地解释一下你“把第一列相同数字的行求平均”的这个需求




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2