728x90

MATLAB 14

MATLAB lognstat을 이용한 로그정규분포의 평균과 분산 변환

확률 변수 X의 자연 로그가 정규 분포를 따를 때, 확률 변수 X는 로그정규분포(lognormal)를 따른다고 한다. 이 때 확률 변수 X의 확률 밀도 함수(PDF: Probability Density Function)나 누적 분포 함수(Cumulative Distribution Function)는 해당 확률 변수의 자연 로그 값인 Y의 평균과 분산을 매개변수로 정의된다. 이와 마찬가지로 로그정규분포와 관련한 MATLAB 함수에서도 Y의 평균과 표준편차 값을 넣는다. 이는 만약 로그정규분포를 따르는 data가 있다면 해당 data의 평균과 분산을 MATLAB 함수에 바로 넣어주면 안되고 로그를 취한 Y변수의 평균과 표준편차 값을 넣어야 한다는 의미이다. 확률 변수 X와 Y의 평균과 분산 간의 관계식은 아..

MATLAB 2022.03.01

MATLAB 행렬에서 특정 열 벡터 또는 행 벡터 존재 여부 확인하기

어떤 행렬(matrix)에 특정한 열 벡터(column vector) 또는 행 벡터(row vector)가 있는지 확인하는 방법이다. 관련해서 MATLAB 함수가 있는 줄 알았는데, 딱히 없는 것 같아서 정리해봤다. for 문을 써서 행렬의 행이나 열을 직접 인덱싱(indexing)해서 확인할 수도 있지만, 행렬의 크기가 매우 크거나 이런 작업을 반복적으로 수행해야 할 경우, 비효율적이므로 해당 방법을 추천한다. 사용 예시: 어떤 dataset을 m x n 행렬로 표현할 때, data 개수(sample 수) x data의 차원(dimension) 형태로 저장하는 경우가 있다. 이 때 해당 dataset을 나타내는 행렬 내에 어떤 data(1 x n vector)가 있는지를 확인할 필요가 있을 수 있다. ..

MATLAB 2021.05.24

.mat 파일 저장 및 불러오기

.mat 파일은 MATLAB code에서 사용한 변수, 함수 등을 저장할 수 있는 파일이다. 유용하게 사용되는 경우는 아래와 같다. * 디버깅(debugging): 보통 MATLAB main code를 돌리면 code가 다 돌아갔을 때에 작업공간에 나타나는 변수는 main code 상에서 저장된 변수들만 나타난다. 때문에 main code에서 참조한 각 함수(function)들에서 사용된 변수를 확인하기 위해서는 중단점(breakpoint)을 설정해서 code가 돌아가는 중간에 확인해야 한다.(code가 돌아가는 내내 확인할 것이 아니라면 추천하지 않는다.) 하지만 참조하는 함수에서 .mat 파일을 저장하면 해당 함수에서 계산된 변수들을 따로 저장할 수 있다. * 전달: 특정 code에서 사용된 변수들을..

MATLAB 2021.05.04

MATLAB 셀(cell) 배열 정의 및 호출하기, 관련 함수 정리

MATLAB에서 셀 배열은 기존의 수치 배열(벡터, 행렬 등)과 다르게 배열의 각 원소에 문자 자료형, 숫자 자료형 심지어는 함수까지 저장할 수 있는 자료형이다. 1. 셀 배열 정의하기 원하는 셀 배열 예시 array1 array2 [1, 2, 3] [3, 2, 1; 1, 2, 3] 1) 할당 명령문 사용 방법 1: 배열명(a, b) = {넣을 내용} ex> A(1, 1) = {'array1'}; A(1, 2) = {'array2'}; A(2, 1) = {[1, 2, 3]}; A(2, 2) = {[3, 2, 1; 1, 2, 3]}; 방법 2: 배열명{a, b} = 넣을 내용 ex> A{1, 1} = 'array1'; A{1, 2} = 'array2'; A{2, 1} = [1, 2, 3]; A{2, 2} ..

MATLAB 2021.03.09

polyfit, polyval 함수로 다항곡선 회귀분석하기(Polynomial Curve Fitting)

다항곡선 회귀분석은 단일 변수에 대한 함숫값을 어떠한 다항식으로 근사할 때 사용한다. 위와 같이 n차 다항식으로 근사를 한 후 주어진 data sample을 잘 표현하는 다항식 계수들을 추정(estimation)하는 것을 다항곡선 회귀분석 또는 다항식 회귀분석이라고 하고 영어로 polynomial curve fitting이라고 한다. 이 때 회귀 분석을 위해 필요한 data의 개수 N은 근사하고자하는 다항식의 최고 차수가 n개 일 때, n+1보다 많아야 한다. 즉 N ≥ n+1이어야 회귀분석을 통해 다항식의 개수를 구할 수 있다.(구해야 하는 다항식 계수의 갯수가 n+1이고, data sample 1개 당 방정식 1개가 주어지기 때문에 N이 최소한 n+1이 돼야 다항식 계수가 정해질 수 있으므로 당연한 ..

MATLAB 2021.02.07

MATLAB의 particleswarm 함수로 최적화 문제 풀기(Particle Swarm Optimization)

1. Particle Swarm Optimization(PSO)이란? Particle swarm optimization(PSO)은 새 무리와 물고기 떼와 같은 동물 무리들의 집단적인 행동 양상을 모방하여 최적화 문제를 푸는 알고리즘으로 Nature-inspired search method(자연에서 영감을 받은 최적점 찾는 방법이라는 뜻) 중 하나이다. 일반적으로 이런 nature-inspired search method는 함수 계산량이 많지만 global minimum(전역 최솟점)에 수렴하는 것으로 알려져 있다. PSO 알고리즘 내에서는 particle, particle position(design point), particle velocity(design change), swarm leader(a d..

MATLAB 2021.01.23

MATLAB의 ga 함수로 최적화 문제 풀기(Genetic Algorithm)

1. Genetic Algorithm이란? GA(Genetic Algorithm)는 생물학적 진화 과정을 모방하여 최적화 문제를 푸는 알고리즘으로 Nature-inspired search method(자연에서 영감을 받은 최적점 찾는 방법이라는 뜻) 중에서 가장 유명한 방법이라고 할 수 있다. 특히 discrete variable(이산적인 변수)에 대해서도 최적화가 가능하고, 일반적으로 global minimum(전역 최솟점)에 수렴하는 것으로 알려져 있기 때문에 많은 최적화 관련 연구에서 널리 사용되고 있다. GA는 생물학적 진화 과정을 모사했기 때문에 생물학적 용어에 비유한 개념(population, generation, chromosome, gene 등)과 연산(reproduction, crosso..

MATLAB 2021.01.23

MATLAB으로 KS test(Kolmogorov-Smirnov test) 하기(kstest 함수 사용)

어떤 변수에 대한 sample이 어떠한 분포-즉, 확률 밀도 함수(PDF: probability density function)-를 따르는지 알아내기 위한 방법 중에서 KS test(Kolmogorov-Smirnov test)가 있다. KS test는 Goodness-of-fit test 방법 중 하나로 특정 타입의 분포에서만 적용가능하다는 식의 제한 조건이 필요 없다는 것이 장점이다. 1. 이론 KS test는 empirical CDF와 hypothesized(or theoretical) CDF를 비교한다.(여기에서 empirical CDF는 sample이 실제로 sampling된 분포이고 우리가 알고자 하는 분포이다. hypothesized CDF는 해당 sample들이 어떤 분포를 따르는지 모르지만..

MATLAB 2021.01.12

MATLAB에서 csv 파일 및 txt 파일 읽고 쓰기

MATLAB에서 사용하는 행렬 값들을 csv 파일이나 txt 파일로 내보내는 경우 writematrix 함수를 사용한다. 반대로 csv 파일이나 txt 파일을 읽어오는 경우 readmatrix 함수를 사용한다. 두 함수에 대한 matlab 설명은 아래 링크에 나와있다. writematrix: https://kr.mathworks.com/help/matlab/ref/writematrix.htmlreadmatrix: https://kr.mathworks.com/help/matlab/ref/readmatrix.html writematrix의 문법은 writematrix(A, filename)이다. A는 행렬 값을 담은 변수이고, filename은 '파일이름+파일확장자'로된 문자열이다. 이 명령을 하는 경우 A..

MATLAB 2020.11.10

MATLAB-Python 연결하는 방법 3

MATLAB함수를 Python에서 쓸 일이 있거나, Python에서 정의한 함수 또는 라이브러리를 MATLAB에서 쓰는 방법을 정리했다. 나는 개인적으로 Python으로 AI model을 만들고 그 결과를 MATLAB에서 가져오려고 했다. 다양하게 시도를 해봤고 그 결과를 정리해보고자 한다.- 결론적으로 나는 3번 방식으로 겨우 성공했는데, 1, 2번 방식도 되는 상황도 있을 테니 가능하다면 1번이나 2번 방법을 사용하는 것이 좋을 것 같다. 3. MATLAB에서 command 창 명령으로 Python 파일을 함수처럼 이용하기 나의 경우 Python 파일에서 AI model을 만들고, 이 AI model의 input을 MATLAB을 통해 넣고, output을 MATLAB에서 받아와 이 함수 정보를 통해 ..

MATLAB 2020.10.22
728x90