2016-06-23 19 views
1

参加者が5つの異なる条件(独立変数)で0-9(従属変数)の評価をランダムな順序で与える実験結果があります。 は、私は私の実験の各レベルの平均評価を見つけるしたいと思いますので、私は最終的に散布図としてプロットすることができ、これに類似した数値配列matlabでセルのサブセットの平均を見つけるには?

ratings = [ 5 7 2 4 8 7 6 3 5 6] 
level = [ 1 5 3 3 2 4 5 4 1 2] 

を取得します。誰かがこれを行う方法の方向に私を指摘できますか?

答えて

1

各レベルの平均評価を計算する場合は、accumarrayを使用します。 accumarrayは、対応する値でグループ格付けをlevelとします。次に、これらのグループのそれぞれに4番目の入力として指定された関数を適用します。お客様のケースでは、同じlevel値を共有するすべてのレーティングの平均を単純に計算するために@meanを使用します。

accumarray(level(:), ratings(:), [], @mean); 

%  5 
%  7 
%  3 
%  5 
%  6.5 
1

解決方法はaccumarrayです。しかし、多種多様ですが、これも動作します:

result = nonzeros(sparse(level,1,ratings))./nonzeros(sparse(level,1,1)); 
+0

あなたは最近、希薄な蹴りをしています!賢い – Suever

+0

@Sueverあなたは既に 'accumarray'アプローチを採用していましたので、..-) –

関連する問題