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

 

배열 요소의 합 - MATLAB sum - MathWorks 한국

이 예제의 수정된 버전이 있습니다. 사용자가 편집한 내용을 반영하여 이 예제를 여시겠습니까?

kr.mathworks.com

 

 

https://kr.mathworks.com/help/matlab/ref/mean.html

 

배열의 평균값(Mean Value) - MATLAB mean - MathWorks 한국

N개의 스칼라 관측값으로 구성된 확률 변수 벡터 A에 대해, 평균값은 다음과 같이 정의됩니다.

kr.mathworks.com

 

 

'매트랩' 카테고리의 다른 글

매트랩 행렬  (0) 2020.07.10

※편리하게 명령어와 결과를 보기 위해 라이브 스크립트를 이용 

매트랩을 사용할 경우, 하나의 변수에 실수 하나가 아닌 여려개를 행렬로 저장할 수 있다.

 

 

행렬 입력

 

매트랩에서 행렬을 입력하는 방법은 크게 가로 행렬과 세로 행렬로 나눌 수 있다.

가로행렬은 콤마(,)가 숫자 사이에 생략된 것과 동일한 결과를 보이고 숫자 사이에 세미콜론(;)을 쓸 경우 세로 행렬로 선언된다.

행렬에 대한 정보를 알고싶다면

 

whos 행렬이름

을 입력하면 행렬의 크기, byte등의 정보를 알 수 있다.

 

행렬의 곱

 

행렬의 곱 연산을 하기 위해서는 아래의 조건이 필요하다.

행렬 A와 행렬 B를 곱한다고 가정하자.

행렬 A의 크기는 n X m , 행렬 B의 크기는  i X j 라면,

m과 i는 같은 값이여야 한다.

연산결과는 n X j인 행렬이다.

행렬의 곱

여기서 주의할 것은  A * B 와 A .*B는 같지 않다는 것이다.

A*B는 matrix연산으로 위에서 말한 dimension 조건을 만족해야하고

A.*B는 같은 위치에 있는 값을 곱하는 연산이다.

'매트랩' 카테고리의 다른 글

sum vs mean 함수  (0) 2022.07.16

+ Recent posts