2012-11-06 3 views
0

필자는 n * d 행렬로 표시되는 n 개의 샘플 d 피처가있는 데이터 세트를 가지고 있습니다. 해당 레이블은 n * 1 벡터입니다. MATLAB에서 루프없이 각 클래스 내 표준 편차를 계산하려면 어떻게해야합니까? 예를 들어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의 표준 편차? accumarray를 사용

답변

4

,이 같은 표준 편차를 계산할 수 있습니다 : 당신이 통계 도구 상자가있는 경우

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

, 당신은 대신 grpstats를 사용할 수 있습니다

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

일을 : 말해,이 ** 당신은 ** accumarray로 할 수없는 ** 아무것도? :) –

관련 문제