ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 6-1. (Matlab) 알아두면 유용한 매트랩, 행렬 연산 응용
    2) Tech 2020. 4. 5. 15:59
    반응형

    안녕하세요!!

     

    이번시간에는 지난시간에 이어!

     

    행렬의 연산과 응용에 대해 이야기해보겠습니다.

     

     

    1. 행렬의 연산

     

    오늘도 역시나 행렬을 먼저 생성합니다!

     

    3x3 행렬을 생성해볼게요

     

    A = [3,2,6; 7,8,1; 0,2,4]

     

    - 행렬의 열평균 구하기

     

    먼저, 생성한 행렬의 열방향 평균을 알아보고싶습니다! 

    (행렬의 열방향 Data의 평균을 구할때 유용하겠죠?!)

     

    지난시간 기억을 더듬어 행렬의 인덱싱을 사용해서 평균을 구해보겠습니다.

     

    acol_1 = A(:, 1)      =>    A행렬의 1열을 인덱싱하여 acol_1 에 할당

     

    mean(acol_1)        =>     mean 함수를 사용하여 aco_1 원소들의 평균 구한다.

     

     

    하지만, 위 보다 더욱 간단한 방법이 있습니다!

     

    mean 함수를 A행렬에 사용해주면 곧장 평균값들이 계산됩니다.

     

     

    m = mean(A)       =>      A행렬 각열의 평균값 계산

     

     

    매트랩에서 mean 함수는 Default로 열의 평균을 계산하게 되어있습니다.

     

     

    때문에 m에는 [3.3333, 4.0, 3.6667] 이렇게 할당이 되겠네요.

     

     

    m[1], m[2], m[3] 등으로 열평균을 추출가능합니다!

     

    - 행렬의 행평균 구하기

     

    위에서 mean 함수는 Default로 열 평균을 계산하게 되어있다고 말씀드렸는데요.

     

    mean(행렬, dim)   dim = 1(default값) 

     

    그니깐! m = mean(A, 1) 여기서 dimension 값인 1이 생략되어있는거였죠!

    dimension 1 = 열, 2 = 행 을 의미합니다!

     

    그럼 행평균을 구할때는 dimension 값만 바꾸어 주면 끝입니다.

     

    즉,

     

    m = mean(A, 2)       =>      A 행렬의 각 행의 평균 계산

     

     

    여기서는 m[1], m[2], m[3]으로 각 행평균을 추출가능합니다!

     

     

     

    - 행, 열별 덧셈

     

    행, 열별 전체 덧셈은 때때로 비율을 계산할때 유용하게 사용되겠죠!

     

    역시나 인덱싱을 통해 각열과 행의 덧셈이 가능하지만,

    위와 마찬가지로 Sum 함수를 사용하시면됩니다.

     

    sum 함수 또한 dimension(1=열, 2=행) 에 따라 열방향, 행방향 합이 구해집니다.

     

     

    s = sum(A)      =>   column 방향으로 합이 구해짐.

     

    s = sum(A,2)    =>   row 방향으로 합이 구해짐.

     

     

     

     

    2. 행렬 Size 변경

     

    Matrix를 사용할때 사이즈를 변경 해야하는 경우가 종종 생깁니다.

    그럴때 매트랩에서는 역시나 함수하나로 간단히 resizing이 가능합니다!

     

    행렬을 하나 생성합시다!

     

    M = [1:4; 5:8; 9:12]

     

    reshape 함수를 사용하면 같은 원소 개수에 한에서 행렬 size 변경이 가능합니다.

     

    reshape(size변경할 행렬, 행size, 열size)

     

    N = reshape(M, 4, 3)          =>       3 x 4 -> 4 x 3 로 변경!

     

    원소의 개수가 다른 행렬로 변경 시도 시 에러가 뜹니다!!

     

     

     

     

     

    오늘은 여기서 내용 마무리 하도록 하겠습니다. 

     

    부족하지만 읽어주셔서 감사합니다~~

     

     

    Editor

    %% 
    clear;clc; 
    A = [3,2,6 ; 7,8,1; 0,2,4] 
    %column 방향 
    m = mean(A); % 열방향으로 평균이 구해진다. 
    s = sum(A); 
    %row 방향 
    s = sum(A, 2); % dim 1: 열방향, 2: 행방향 
    m = mean(A, 2); 

    M = [1:4 ; 5:8 ; 9:12]; 
    N = reshape(M, 4, 3); % Matrix Size 변경 

     

    반응형

    댓글

Designed by Tistory.