2016-10-13 3 views
1

제 데이터가 x라는 nxm 어레이에 있습니다. 내가 원하는 것은 특정 임계 값 이상의 각 열의 값의 평균을 계산하는 것입니다. 따라서 출력은 1xm 벡터 여야합니다.각 열의 특정 임계 값을 초과하는 평균을 계산하십시오.

mean (x)은 분명히 임계 값을 지정하지 않고이 작업을 수행합니다. mean(x>70)은 진실 검사를 수행하고 기본적으로

당신은

y = x > 70 

로 새 변수를 정의한 다음

mean(x(y)) 

하지만,이 반환 할 수 각 열에 대한 임계 값을 초과 값의 백분율을 반환 x의 모든 열에 대한 평균.

모든 열에 대해 코드 줄을 사용하는 것은 매우 번거로운 방법입니다.

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

관련 문제