MATLAB을 이용하다보면 행렬을 많이 쓰게 된다.
상황에 따라 행렬의 차원수도 다양해지고, 각 차원이 의미하는 것도 다양해진다.
예를들어
행렬 A가 3차원이고 각 차원마다 [성별, 사람, 시간에 따른 몸무게] 데이터를 갖고 있다고 해보자.
CASE1) 사람 개인차는 중요하지 않고, 성별에 따른 몸무게만 보고 싶다면 사람에 대해서 평균을 계산해주면된다.
즉, 2차원에 해당하는 데이터의 평균을 구하면 된다.
CASE2) 성별에 대한 차이까지 합쳐서 보고 싶다면 1차원 데이터까지 평균을 구해주면 된다.
여기서 말하는 평균은 산술평균이다.
* 산술평균: 자료들의 전체 합에 대해 자료수로 나눈 단순한 평균
이때 사용하는 함수가 sum함수나 mean함수 이다.
sum(A,dim);
mean(A,dim);
둘의 공통점은
dim 변수를 통해 합을 구하고자하는 차원(행/열)을 결정할 수 있다는 것이다.
차이점은 이름에서도 나타나있듯이
sum은 단순히 합까지만 구해주고
mean은 합을 구한 후, 나눗셈까지 한 평균을 구해준다.
특히 CASE2와 같은 상황일 때 mean함수를 다음과 같이 이용하면 더 유용할 것 같다.
단, mean함수를 쓸 때 주의사항은 행렬에 0이 포함되어 있다고 하더라도 전체 길이로 나눠준다.
% A = [성별, 사람, 몸무게]인 3차원 데이터
weight_average = mean(mean(A,2),1);
% 주의사항
temp = [ 1 2 3 4 0 0 0];
mean(temp) % 10/7이 됨.
https://kr.mathworks.com/help/matlab/ref/sum.html
https://kr.mathworks.com/help/matlab/ref/mean.html