2
假設我有載體:Matlab的:「分組平均」
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
很酷!謝謝!看起來我也可以使用從'unique'返回的索引作爲準確數據的第一個參數(例如,如果我的唯一值不是連續的整數) –
@JasonS:或使用統計工具箱中的'grp2idx' – Jonas
@JasonS是的,聽起來不錯。 –