2016-10-13 10 views
1

データはxというnxm配列にあります。私がしたいのは、各列の値の平均値を特定のしきい値以上に計算することです。したがって、出力は1xmのベクトルでなければなりません。各列の平均値を計算する

mean(x)は明らかにしきい値を指定せずにこれを行います。 mean(x>70)は真実性チェックを実行し、基本的にはそのような

y = x > 70 

、次いで

mean(x(y)) 

これ戻るように新しい変数を定義することができ、各列

ための閾値を上回る値の割合を返しxのすべての列の平均。

すべての列に1行のコードを付けることによって、非常に面倒な方法があります。

mean(x(y(1:end,1))) 

などですが、これは明らかに醜いです。

ここでは簡単なことがありません。うまくいけば誰かを助けることができるでしょう。各列の同じしきい値は

+0

てマスクを掛けることができますことを忘れてしまいましたか? –

+0

はいそれは同じです – Euphoria66

+0

次に、以下の解決法では、単に 'threshold'をスカラーに設定してください。すなわち、「閾値= 70」 –

答えて

0

あなたは、要素ごと

threshold = []; %define threshold here; it can be a 1xm vector or a scalar. 
output = sum(x.*(x>threshold))./sum(x>threshold); 
+0

まず、答えに感謝します。 – Euphoria66

+0

これは、しきい値の下にあるxのすべての要素を0に変更するものですが、その結果、平均が大幅に歪んでしまいます。だから、これは本当に良い選択肢ではありません。 – Euphoria66

+0

done = down ... – Euphoria66