假设我有向量:
y = [1 1.01 1.02 1.03 2 2.01 2.02 3 3.01 3.02 3.03];
c = [0 0 0 0 1 1 1 2 2 2 2 ];
是否有一种矢量化方法来获得“分组平均值”,即y
每个唯一值的平均值c
?(这是一个简化的示例;我有类似的东西,但向量大小为数千,并且 c 有数百个值)
我可以在 for 循环中做到这一点,只是想知道它是否可以被矢量化。这是我的for循环实现:
function [my,mc] = groupmean(y,c)
my = [];
mc = [];
for ci = unique(c)'
mc(end+1) = ci;
my(end+1) = mean(y(c==ci));
end