ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3. (Matlab) 알아두면 유용한 매트랩, 벡터의 연산 & 통계함수
    2) Tech 2020. 2. 19. 15:05
    반응형

    안녕하세요!

     

    알아두면 유용한 매트랩 3번째 시간입니다!

     

    이번시간에는 지난시간에 다뤘던 Vector 및 행렬의 연산 기능에 대해 나눠보려합니다.

     

    수학의 정석에서 배워서 아시겠지만....

     

    행렬은 행렬의 곱셈과 덧셈 등 연산이 가능합니다.

     

    이는 매트랩에서도 가능하다는 말이겠죠!

     

    오늘도 매트랩을 직접 실행해보면서 이야기하겠습니다.

     

    1.  Vector의 상수 연산

     

    v = [1, 2, 3]

     

    자! 위와 같이 v라는 벡터하나를 만들겠습니다.

     

    v의 원소마다 특정 값으로 사칙연산이 가능합니다.

     

    벡터 v에 특정값으로 연산한 결과를 x에 할당해보겠습니다.

     

    x = v +3

    x = v - 3

    x = v * 3

    x = v / 3

     

    위 수식을 차례로 Command Window에 입력해보세요!

     

    그림1. 벡터의 연산

    예상한 결과이신가요?!

     

    특정 수를 연산할 경우에는 따로 행벡터를 만들지 않아도 각각 원소에 계산되는 것을 볼 수 있습니다.

    (열벡터도 마찬가지입니다!!)

     

    2. Vector 간 연산

     

    이번에는 Vector 간의 연산을 알아보겠습니다.

     

    v2 = 4:6

     

    위와 같이 새로운 행벡터 v2를 생성해주세요!

     

    y = v + v2

    y = v - v2

    y = v * v2

    y = v / v2

     

    위 수식을 차례로 Command Window에 입력해보세요!

     

    아마 덧셈과 뺄셈 연산을 제외하고는 오류가 뜨거나 당황스러운 값이 나올것입니다!

     

    그림2. Vector 간 연산

     

    오류의 내용은 행렬의 곱셈에서 행과 열의 개수가 같지 않아서 발생하는 오류라고 하네요.

     

    같은 크기의 벡터에서 각각 원소끼리의 곱셈과 나눗셈을 진행하려면

     

    하나만 기억하시면 됩니다!! .(점)을 기억하세요!

     

    즉, 아래와 같이 수식을 수정하시면 각 원소 간 곱셈과 나눗셈이 진행됩니다.

     

    y = v.*v2 

     

    y = v./v2 

     

    그림3. 벡터 원소간 곱셈과 나눗셈

     

    .이 각각 연산해라 라는 뜻이 되는거겠죠?!

     

    2. Vector 통계 함수

     

    이번에는 통계 함수를 바로 예시로 알아보겠습니다.

     

    x = [2, 5, 9, 1, 10] 

     

    m = mean(x)  % 원소들의 평균 


    m = min(x)  % 원소 중 최소값


    m = max(x)  % 원소 중 최대값


    s = sum(x)  % 원소의 합


    v = var(x)   % 원소의 분산


    st = std(x)  % 원소의 표준편차 

     

    그림4. 통계 함수

     

    2-1. 통계 함수의 결과 값 위치 찾기

     

    [m, i] = min(x)  % m에 min(x) 값 할당, i에 min(x) 값의 위치를 할당


    [m, i] = max(x)  % m에 max(x) 값 할당, i에 max(x) 값의 위치를 할당


    [~, i] = max(x)  % i에 max(x) 값의 위치를 할당

     

    통계함수의 결과와 결과의 위치 찾기

     

    함수 결과의 위치를 찾는 법이 어떻게 사용되는지 예시를 통해 보겠습니다!

     

    첫번째포스팅에서 만들었던 .mat 파일을 이용하겠습니다!

     

    clear;clc; 

     

    load('FGK.mat')   %  .mat file 불러오기

     

    plot(Year,France)   % 년도별 France 가스 가격 그래프

     

    %% 문제! 프랑스의 가스 가격이 최소인 연도는? 

     

    [~, i] = min(France)   % France data중 최소값의 위치 i에 할당

     

    Year(i) % France 가스가격이 최소일때 년도 구하기!

     

    최소값 위치 찾기 예시

     

    프랑스의 가스가격이 최소인 년도는 1993년이었네요! 그럼 진짜 맞는지 확인해볼까요?

     

     

    France data를 열어서 확인해보면 가장 작은 수의 위치 4번째 행인걸 볼수 있습니다.

     

    plot(Year, France)

    에서 1차 함수로 1:1 매칭을 해주었으니 1993년도가 나오는게 맞네요!

     

     

    이번시간에는 Vector의 연산과 몇가지 통계함수를 확인해봤습니다

     

    직접 확인해보시면 더더욱 좋을거 같네요!!

     

    읽어주셔서 감사합니다~!!

     

     

     

     

     

     

     

    --------------------------------------------------------------------------------------------------------------------

    Editor

     

    %% vector 연산
    clear; clc;

    v= [1, 2, 3];
    x = v+3;
    x = v-3;
    x = v*3;
    x = v/3;
    v2 = 4:6;
    y = v+v2;
    y = v-v2;
    y = v.*v2;
    y = v./v2;

    %% statistical functions
    clear; clc;
    x = [2, 5, 9, 1, 10];
    m = mean(x); %평균
    m = min(x);
    m = max(x);
    s = sum(x)
    v = var(x); %분산
    s = std(x); %표준편차
    [m, i] = min(x);
    [m, i] = max(x);
    [~, i] = max(x);


    %%
    clear;clc;
    load('FraGerkor.mat')
    plot(Year,France)
    % 프랑스의 가스 가격이 최소인 연도는?
    [~, i] = min(France)
    Year(i)

     

     

     

     

     

    반응형

    댓글

Designed by Tistory.