줄리아, 매트랩, 파이썬, R에서 동등한 코드들
개요
줄리아, 매트랩, 파이썬, R에서 같은 기능을 하는 코드를 정리한다.
파이썬에 대해서 다음과 같은 환경이라고 하자.
import numpy as np
일반Common
| 줄리아Julia | 매트랩Matlab | 파이썬Python | R |
| 주석comment | |||
| #comment | %comment | #comment | #comment |
| 2차원 그리드2d grid | |||
| X = kron(x, ones(size(y)))Y = kron(ones(size(x)), y) | [X,Y] = meshgrid(x,y) | np.meshgrid(x,y) | |
타입Type
| 줄리아Julia | 매트랩Matlab | 파이썬Python | R |
| 성분의 타입type of elements | |||
| eltype(x) | x.dtype | ||
| 성분의 타입 변경changing type of elements | |||
| convert(Array{Float64},x) | x.astype("float64") | ||
| x의 타입type of x | |||
| typeof(x) | type(x)#class of x | ||
벡터Vector
| 줄리아Julia | 매트랩Matlab | 파이썬Python | R |
| 열 벡터column vector | |||
| [1 4 -1 2] | [1;4;-1;2] | np.array([1,4,-1,2]).reshape(-1,1) | |
| 행 벡터 Row vector | |||
| [1;; 4;; -1;; 2]or[1 4 -1 2]' | [1 4 -1 2]or[1,4,-1,2] | np.array([1,4,-1,2]) | |
| 영 벡터 Zero vector | |||
| zeros(n)#column vector | zeros(n,1)#not zeros(n)#zeros(n)=zeros(n,n) | np.zeros(n)#row vector | matrix(0,n) |
| 1 벡터Vector with only ones | |||
| ones(n)#column vector | ones(n,1)#not ones(n)#ones(n)=ones(n,n) | np.ones(n)#row vector | |
| 선형 간격의 샘플(길이 기준)n equally spaced sample | |||
| range(0,stop=1,length=10)orLinRange(0,1,10) | linspace(0,1,10)#row vector | np.linspace(0,stop=1,num=10)#row vector | |
| 선형 간격의 샘플(간격 기준)n equally spaced sample | |||
| range(0, stop=1, step=0.1) | 0 : 0.1 : 1 | np.arange(0,1.001,0.1) | |
| 로그 간격의 샘플n logarithmically spaced sample | |||
| 10 .^range(0,1,10) | logspace(0,1,10)#row vector | np.logspace(0,stop=1,num=10,base=10)#row vector | |
행렬Matrix
| 줄리아Julia | 매트랩Matlab | 파이썬Python | R |
| 영 행렬zero matrix | |||
| zeros(m,n) | zeros(m,n) | np.zeros([m,n]) | matrix(0,m,n) |
| 플래튼flatten | |||
| vec(x) | x(:) | np.ravel(x) | |
| x와 같은 크기, 데이터타입의 zeros 반환return zeros with the same shape and dtype as a given x | |||
| zero(x) | np.zeros_like(x) | ||
| x와 같은 크기, 데이터타입의 ones 반환return ones with the same shape and dtype as a given x | |||
| fill!(similar(x), 1) | np.ones_like(x) | ||
| 차원dimensions | |||
| ndims(x) | ndims(x) | x.ndim | |
| 크기size of matrix | |||
| size(x) | size(x) | x.shape | |
| 성분의 수number of elements | |||
| length(x) | numel(x) | x.size | |
| 가장 큰 차원의 길이length of largest dimension | |||
| maximum(size(x)) | length(x) | max(x.shape) | |
무작위 추출Random sampling
| 줄리아Julia | 매트랩Matlab | 파이썬Python | R |
| 균등분포 랜덤 벡터Uniformly distributed random vector | |||
| rand(n)#column vector | rand(n,1)#not rand(n)#rand(n)=rand(n,n) | np.random.rand(n)#row vector | |
| 균등분포 랜덤 행렬Uniformly distributed random matrix | |||
| rand(m,n) | rand(m,n) | np.random.rand(m,n) | |
| 표준정규분포Normally distributed random numbers | |||
| randn(m,n) | randn(m,n) | np.random.randn(m,n) | |
푸리에 변환Fourier Transform
줄리아에 대해서 다음과 같은 환경이라고 하자.
using FFTW
| 줄리아Julia | 매트랩Matlab | 파이썬Python | R |
| 푸리에 변환 Fourier transform | |||
| fft(x) | fft(x) | np.fft.fft(x) | fft(x) |
| 푸리에 역변환 Inverse Fourier transform | |||
| ifft(x) | ifft(x) | np.fft.ifft(x) | fft(y,inverse=TRUE)/length(y) |
보간법Interpolation
파이썬에 대해서 다음과 같은 환경이라고 하자.
from scipy.interpolate import griddata
$X, Y, P, Z$를 2차원 배열, $x, y$를 1차월 배열이라고 하자.
| 줄리아Julia | 매트랩Matlab | 파이썬Python | R |
| 2차원 보간 2D interpolation | |||
| Z=interp2(X,Y,P,x,y) | Z=griddata((np.ravel(X),np.ravel(Y)),np.ravel(P),(x,y)) | ||
시각화Visualization
줄리아에 대해서 다음과 같은 환경이라고 하자.
using Plots
파이썬에 대해서 다음과 같은 환경이라고 하자.
import matplotlib.pyplot as plt
2차원 이미지로 출력하고자 하는 배열을 $A$라고 하자.
| 줄리아Julia | 매트랩Matlab | 파이썬Python | R |
| 스케일 범위 지정 Set scale range | |||
| heatmap(A,clim=(a,b)) | plt.imshow(A)plt.colorbar()plt.clim(a,b) | ||
| 수평선 Horizon line | |||
| hline!(a) | plt.axhline(a) | ||
| 수직선 Vertical line | |||
| vline!(a) | plt.axvline(a) | ||

저희들의 저서 「줄리아 프로그래밍」이 2024 세종도서 학술부문에 선정되었습니다!

