如何在matlab中计算无循环的组内标准差?

时间:2012-11-06 13:51:46

标签: matlab standard-deviation

我有一个数据集,其中n个样本d由n * d矩阵表示。相应的标签是n * 1向量。如何在matlab中计算每个没有循环的组内标准差?

例如:

样品

 5     1     1     1     4
 5     2     5     3     1
 1     3     5     5     5
 5     5     3     4     5
 4     5     5     5     4

标签:

2
1
1
2
2

如何计算1级和2级标准差?

1 个答案:

答案 0 :(得分:4)

使用accumarray,您可以像这样计算标准偏差:

stdev = cell2mat(accumarray(label,(1:length(label))',[],@(x){std(samples(x,:))}));

如果您有统计工具箱,则可以改为使用grpstats

stdev = grpstats(samples,label,'std')