728x90

MATLAB 9

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-Python 연결하는 방법 1

MATLAB함수를 Python에서 쓸 일이 있거나, Python에서 정의한 함수 또는 라이브러리를 MATLAB에서 쓰는 방법을 정리했다. 나는 개인적으로 Python으로 AI model을 만들고 그 결과를 MATLAB에서 가져오려고 했다. 다양하게 시도를 해봤고 그 결과를 정리해보고자 한다. - 결론적으로 나는 3번 방식으로 겨우 성공했는데, 1, 2번 방식도 되는 상황도 있을 테니 가능하다면 1번이나 2번 방법을 사용하는 것이 좋을 것 같다. 1. MATLAB에서 Python 파일을 함수처럼 호출하기 MATLAB에서 Python 함수로 호출하는 방법이다. MATLAB에서 기본적으로 Python에 내장 함수를 사용할 수 있다. 그 방법과 마찬가지 방식으로 Python 파일을 호출하는 것이다. 우선 MAT..

MATLAB 2020.09.23

여러 확률분포들의 단일 변수 PDF 및 CDF 관련 MATLAB code

1. Normal Distribution 관련 MATLAB 함수: normpdf, normcdf, norminv, normrnd --- MATLAB code --- % normal distribution mu = 10; sigma = 2; x = 0:0.1:mu*2; y = normpdf(x,mu,sigma); % normal pdf 값 plot(x, y) y = normcdf(x, mu, sigma); % normal cdf 값 plot(x, y) y = norminv(0.5, mu, sigma) % normcdf의 역함수 normrnd(mu, sigma, 2) % normpdf에 맞게 난수 생성 2. Lognormal Distribution 관련 MATLAB 함수: lognpdf, logncdf, l..

MATLAB 2020.06.05

MATLAB의 fmincon 함수로 최적화 문제 풀기

1. fmincon: Optimization 문제를 풀 때 사용하는 MATLAB 함수 2. MATLAB에서의 기본적인 설명 1) 기본 문법(syntax) ('help fmincon' 입력 시 나오는 내용) fmincon - 제약 조건이 있는 비선형 다변수 함수의 최솟값 구하기 비선형 계획법 솔버입니다. x = fmincon(fun,x0,A,b) x = fmincon(fun,x0,A,b,Aeq,beq) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) x = fmincon(problem) [x,fval] = fm..

MATLAB 2020.04.13
728x90