HOWTO · MATLAB
MATLAB의 mean() 함수를 사용하여 배열의 평균 얻기
MATLAB에서 mean() 함수를 사용하여 배열의 평균 또는 평균을 찾을 수 있습니다.
이 페이지의 내용
MATLAB의 mean 함수로 벡터의 평균이나 행렬의 특정 차원별 평균을 구할 수 있습니다. 일반적인 2차원 행렬에서 mean(A)는 각 열의 평균을 반환하고, 각 행의 평균을 구하려면 mean(A,2)를 사용합니다. 아래 벡터 예제의 출력은 4이며, 실행이 성공했습니다.
MATLAB의 mean 함수로 배열 평균 구하기
벡터의 평균을 구하려면 벡터를 입력으로 mean을 호출합니다. 다음은 Octave와 호환되는 완전한 단독 예제이며 MATLAB 코드로도 유효합니다.
이 예제를 실행하세요.
values = [2, 4, 6];
average = mean(values);
disp(average)
4
행렬 A에 mean(A)를 적용하면 MATLAB은 첫 번째 크기가 1이 아닌 차원을 따라 계산합니다. 일반적인 행렬에서는 이 차원이 1이므로 결과는 각 열의 평균을 담은 행 벡터입니다. 차원 2를 선택하려면 mean(A,2)를 사용하세요. 그러면 각 행의 평균을 담은 열 벡터가 반환됩니다. 결과에서는 선택한 차원의 크기가 1로 줄고 다른 차원의 크기는 유지됩니다.
출력 형식도 지정할 수 있습니다. 예를 들어 mean(A,'double')은 기본 차원을 사용하면서 double 형식의 출력을 요청하고, mean(A,2,'double')은 행별 계산과 해당 출력 형식을 함께 지정합니다. 형식 옵션은 계산할 차원을 선택하지 않습니다.
sum과 나눗셈으로 배열 평균 구하기
평균은 값의 합을 값의 개수로 나눈 것입니다. 행렬의 모든 요소를 대상으로 전체 평균 하나를 구하려면 A(:)로 행렬을 펼친 다음 sum(A(:))을 numel(A)로 나눕니다. numel은 전체 요소 수를 세지만, length는 가장 긴 차원의 크기를 반환하므로 행렬 요소 수를 구하는 일반적인 대체 수단이 아닙니다.
차원별 평균을 구할 때는 합과 그에 맞는 개수를 사용합니다. 열별 평균은 sum(A,1) ./ size(A,1)로 계산할 수 있습니다. 각 열의 합을 행 수로 나눕니다. 행별 평균은 sum(A,2) ./ size(A,2)로 계산할 수 있습니다. 각 행의 합을 열 수로 나눕니다. 나눗셈에 쓰는 값은 해당 합에 포함된 값의 개수와 일치해야 합니다.
이 수동 계산법은 평균 계산 과정을 이해하거나 응용할 때 유용합니다. 일상적인 계산에서는 mean을 사용하는 편이 의도를 더 명확하게 표현합니다.
루프로 배열 평균 구하기
루프를 사용하면 누적 과정을 직접 확인할 수 있습니다. 예제에서 벡터의 합계는 스칼라이고, 열별 합계는 행 벡터이며, 행별 합계는 열 벡터입니다. 열 루프는 각 행을 더한 뒤 행 수로 나누고, 행 루프는 각 열을 더한 뒤 열 수로 나눕니다.
values = [2, 4, 6];
vectorTotal = 0;
for k = 1:numel(values)
vectorTotal = vectorTotal + values(k);
end
vectorMean = vectorTotal / numel(values);
A = [1, 2; 3, 4; 5, 6];
columnTotals = zeros(1, size(A, 2));
for row = 1:size(A, 1)
columnTotals = columnTotals + A(row, :);
end
columnMeans = columnTotals / size(A, 1);
rowTotals = zeros(size(A, 1), 1);
for column = 1:size(A, 2)
rowTotals = rowTotals + A(:, column);
end
rowMeans = rowTotals / size(A, 2);
이러한 루프는 학습을 위한 대안입니다. 벡터에서는 numel(values)로 모든 항목의 개수를 셉니다. 행렬에서 열별 평균을 구할 때는 행 수를, 행별 평균을 구할 때는 열 수를 사용합니다. 일상적인 계산에서는 MATLAB 내장 함수 mean이 더 명확합니다.
방법 선택하기
일반적인 벡터, 열 또는 행 평균에는 mean을 사용하세요. 차원 인수로 원하는 결과를 분명히 지정할 수 있고 별도의 개수를 관리할 필요가 없습니다. 계산 과정을 보여 주거나 직접 조정해야 한다면 차원에 맞는 제수와 함께 sum을 사용하세요. 누적 과정을 배우거나 각 요소에 추가 로직을 적용해야 한다면 루프를 사용할 수 있습니다. 어떤 방법을 쓰든 나누는 값의 개수가 합에 포함된 값의 개수와 일치해야 합니다.