我有一个实验结果,其中参与者以随机顺序在5个不同条件(自变量)中给出0-9(因变量)的评级。 我得到类似于这个
的数字数组ratings = [ 5 7 2 4 8 7 6 3 5 6]
level = [ 1 5 3 3 2 4 5 4 1 2]
我想找到我实验的每个级别的平均评分,所以我最终可以绘制为散点图。有人能指出我如何做到这一点吗?
答案 0 :(得分:1)
如果您想计算每个级别的平均评分,可以使用accumarray
执行此操作。 accumarray
将执行的操作是按level
中相应的值对小组评分进行评分。然后,它将指定为第四个输入的函数应用于每个组。在您的情况下,我们使用@mean
来简单计算所有具有相同level
值的评分的平均值。
accumarray(level(:), ratings(:), [], @mean);
% 5
% 7
% 3
% 5
% 6.5
答案 1 :(得分:1)
我会选择accumarray
解决方案。但只是为了多样性,这也有效:
result = nonzeros(sparse(level,1,ratings))./nonzeros(sparse(level,1,1));